Исключение с плавающей точкой в ​​C ++?

Я пишу простую программу, которая делает int деление и показывает остаток. Я пытаюсь, чтобы программа работала непрерывно, пока пользователь не введет 0 0. Программа действительно останавливается после того, как пользователь установит 0 0, но не раньше, чем он скажет «Исключение с плавающей запятой» каждый раз. Это код:

#include <stdio.h>

int main(){

int x;
int y;

while (1){
if (x && y == 0)
break;
else
scanf ("%i %i", &x , &y);
printf("%i %i / %i\n" , x / y , x % y, y);
}return 0;

}

-1

Решение

Вам нужно проверить на 0, прежде чем пытаться выполнить операцию:

#include <stdio.h>

int main(){

int x;
int y;

while (1){
scanf ("%i %i", &x , &y);

if (x == 0 && y == 0)
break;

printf("%i %i / %i\n" , x / y , x % y, y);
}

return 0;

}
0

Другие решения

Ваш заказ неверен. Вы делаете это в следующем порядке:

  1. Проверьте, если мы сделали (неправильно, как вам нужно x == 0 && y == 0)
  2. Читать пользовательский ввод
  3. Написать рассчитанный вывод

Вы не проверяете, завершены ли вы, прежде чем вычислять выходные данные, поэтому сначала вычисление не выполняется.

1

if (x && y == 0) не делает то, что вы думаете, что делает. Ты наверное имел ввиду if (x == 0 && y == 0),

Также вы не должны оперировать какими-либо неинициализированными значениями. Перед тем как использовать эти переменные в каких-либо выражениях, присвойте им соответствующие значения или, по крайней мере, убедитесь, что пользовательский ввод принят до того, как они будут применены.

0
По вопросам рекламы [email protected]