Исключение с плавающей запятой С++ Почему и что это такое?
Я создаю программу для проектов Eyler, вопрос 3, и хотя это может не иметь особого значения, я в настоящее время пытаюсь сделать этот код занятым числом и протестировать, если он простой или нет. Теперь, прежде чем я попытаюсь устранить эту функцию, он дает мне ошибку "исключение с плавающей запятой" сразу после ввода номера. Здесь код:
int main()
{
int input;
cout << "Enter number: " << endl;
cin>> input;
int i = input/2;
int c;
for (i>0; i--;) {
c= input%i;
if (c==0 || i == 1)
cout << "not prime" << endl;
else
cout << "prime" << endl;
}
return 0;
}
так по сути, почему он дает мне исключение с плавающей запятой и что это значит?
Ответы
Ответ 1
A " число с плавающей запятой" - это то, как компьютеры обычно представляют числа, которые не являются целыми числами - в основном число с десятичной точкой. В С++ вы объявляете их с float
вместо int
. Исключение с плавающей запятой - это ошибка, возникающая, когда вы пытаетесь сделать что-то невозможное с числом с плавающей запятой, например, делить на ноль.
Ответ 2
for (i>0; i--;)
вероятно, неверен и должен быть
for (; i>0; i--)
вместо этого. Обратите внимание, где я помещал точки с запятой. Условие находится в середине, но не в начале.
Ответ 3
Множество причин исключения с плавающей запятой. Глядя на ваш код, ваш цикл for кажется немного "неправильным". Похоже на возможное деление на ноль.
for (i>0; i--;){
c= input%i;
Thats деление на ноль в какой-то момент, так как вы уменьшаете i.