W języku C dwa rodzaje dzielenia jedno normalne drugie całkowite (jak w podstawówce) oba zapisują się za pomocą tego samego znaku /. Jeżeli dzielnik oraz dzielna są liczbami całkowitymi to wykonuje się dzielenie całkowite, w przeciwnym przypadku dzielenie normalne.
while(true)
{
printf("Podaj miesiac: ");
scanf("%u",&m); // unsigned m; // w deklaracji
if((1<=m)&&(m<=12)) break;
printf("Błąd przy wprowadzaniu miesiąca wartość musi być 1..12\n\n");
}
gcc to kompilator języka C, a w C nie ma typu bool; W C bool, true i false to w pełni poprawne identyfikatory (np. zmiennej, funkcji lub struktury). Natomiast gdyby użył g++ - kompilatora C++ z pakietu GCC, wtedy kod by zadziałał, rozpoznając true jako zastrzeżone słowo języka.
Wszystko co powiedziałeś jest jak najbardziej poprawnie, tylko nie wiedzieć czemu wszystkie dostępne mi kompilatory gcc (pod windowsami, oraz na trzech serwerach pod unixem) rozpoznają elementy C++ (ustawienie domyślne), aby przestali rozpoznawać trzeba dać specjalną opcje (nie pamiętam jaką bo właściwie nigdy tego nie używałem).
lukaszm , nie powiedziałeś czy już po problemie. Ponieważ masz dziwne przepuszczenia :lol:
wg mnie (oraz matematyki) powinno wyjść dokładnie 2457194.
Nie mówiąc już o tym że całe obliczenia da się mocno skrócić:
Hmm nigdy nie próbowałem pisać “C++ w C”. Szczerze mówiąc, nie słyszałem, żeby gcc domyślnie rozpoznawało elementy C++, bo jeżeli tak, to jakie? Chyba nie wszystkie, a jak wybrane to które? Mi zarówno gcc 4.2 jak i 4.3 nie rozpoznają true ani true, dostaję te same komunikaty co lukaszm. Jeżeli tak było to chyba zaostrzyli reguły, zauważyłem to, ale odnośnie kodu C w C++ (wcześniej można było używać wielu funkcji C w C++, teraz bez jawnego załączenia nagłówka się nie da w większości przypadków).
-x Specify the language of the following input files
Permissible languages include: c c++ assembler none
'none' means revert to the default behavior of
guessing the language based on the file's extension
Więc kompilator sam zgaduje na podstawie rozszerzenia.
Co do próbowania pisania “C++ w C” to miałem z tym do czynienia, kiedyś dawno temu miałem specjalny cpp.h definiujący miedzy innymi bool jako char, true jako ‘\1’ oraz false jako ‘\0’. Z tym plikiem nagłówkowym pisząc w C używałem sobie bool, true, false i kilka innych innowacji z C++.
W trakcie bawienia się opcjami kompilatora problemlukaszmzałatwiłem :lol: Podmieniłem wcześniejszą propozycje interfejsu na cały kod.