Я пишу простую программу, которая делает 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;
}
Вам нужно проверить на 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;
}
Ваш заказ неверен. Вы делаете это в следующем порядке:
x == 0 && y == 0
)Вы не проверяете, завершены ли вы, прежде чем вычислять выходные данные, поэтому сначала вычисление не выполняется.
if (x && y == 0)
не делает то, что вы думаете, что делает. Ты наверное имел ввиду if (x == 0 && y == 0)
,
Также вы не должны оперировать какими-либо неинициализированными значениями. Перед тем как использовать эти переменные в каких-либо выражениях, присвойте им соответствующие значения или, по крайней мере, убедитесь, что пользовательский ввод принят до того, как они будут применены.