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 : 문이 작동하지 않는 경우
감사합니다.
편집 : 내가 분할을 정의
코드는 다음과 같습니다가 0으로 분할하는 경우
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'는 변수이고, in-place라는 함수가 아니라는 것을 감안할 때, 당신은 ** 항상 ** 나누기를 수행하고 있다고 말하고 싶을뿐입니다. 그리고 그것을 한 후에 (그리고 결과를 나누기 '변수) 분모가 0이 아닌지 확인합니다. 물론 (0 일 경우) 프로그램이 이미 충돌했습니다. –
'나누기'를 정의하는 코드를 보여줍니다. 그것은'divide = something/num2'처럼 보입니까? 그렇다면 0으로 나눕니다. 이는 유효하지 않습니다. – Brigham