if (num2 != 0)
printf("\nInput 3/Input 2 (int) %12d", divide);
else if (num2 == 0)
printf("\nInput 3/Input 2 (int) DIV/0");
if (flt4 != 0)
printf("\nInput 2/Input 1 (double) %16.3f", divide2);
else if (flt4 == 0)
printf("\nInput 2/Input 1 (double) DIV/0");
Когда я устанавливаю num2 или flt4 равным 0, программа вылетает из строя. В противном случае он отлично работает. Я просматривал прочтение утверждений if/else, и я считаю, что мое форматирование верное, но, очевидно, есть ошибка.C: Если оператор не работает
Спасибо.
EDIT:
код, где я определить разрыв является:
void calculate (int num1, int num2, int num3, float flt4,int* sum,int* mult,
int* mod,int* divide,double* mult2,double* divide2)
{
*sum = num1 + flt4;
*mult = num1 * num3;
*mod = (num1/10)%10;
*divide= num3/num2;
*mult2= num1 * flt4;
*divide2= (double)num2/num1;
return;
}
Мой вопрос заключается в том, как я структурировать эту программу так, если она делит на ноль, я могу показать, что в функции печати ,
Там нет ничего плохого с кодом. Он должен разрушиться в другом месте, чем то, что вы вставили. BTW - вам не нужно указывать другое «if» после «else», поскольку это уже подразумевается предыдущим if. – Grzegorz
Учитывая, что 'divide' является переменной, а не функцией, называемой на месте, я бы сказал, что вы всегда ** выполняете разделение и только после этого (и сохранили результат в' divide 'variable) вы проверяете, что знаменатель отличен от нуля. Конечно, если это (будет) ноль, то ваша программа уже разбилась. – 2013-02-15 22:20:07
Показать код, в котором вы указываете 'divide'. Это похоже на 'divide = something/num2'? Если это так, то вы делите на 0, что недействительно. – Brigham