Я учусь C.
Я использую Ubuntu и имею Code :: Blocks в качестве IDE У меня есть этот код:
#include <stdio.h>
int rev (int num);
int main (){
int numb = 0;
printf("%d\n\n", numb);
printf("Please enter a number. Enter 9999 to stop\n");
scanf("%d", &numb);
printf("there?");
printf("%d\n", numb);
while (numb != 9999){
printf("The reversed number is %d\n", rev(numb));
printf("Please enter a number. Enter 9999 to stop\n");
scanf("%d", &numb);
} /* end of while */
}
int rev (int num){
printf("here?");
int total = 0;
long max = 10;
long max_const = 10;
printf("here");
for (max; max < num; max *= 10);
printf("%ld", max);
max_const = max;
for (int i = 0; i <= max_const; i *= 10, max /= 10){
total += num / max * i;
} /* end for */
return total;
}
Я делаю это таким образомпотому что моя книга не ясна ... однако, проблема в том, что она вызывает исключение с плавающей точкой, в scanf ... я набираю нормальные числа ... странно то, что если я наберу все, кроме 9999,сбой программы.если я наберу 9999, он напечатает «там?»(так что scanf, все в порядке) и остановимся позже, очевидно.почему?
Спасибо.