1
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 语句的阅读内容,我相信我的格式是正确的,但显然存在错误。

谢谢。

编辑:

我定义除法的代码是:

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;
}

那么我的问题是,我如何构造这个程序,所以如果它除以零,我可以在打印函数中显示它。

4

1 回答 1

5

你很可能被零除。该divide变量在“if”之前设置,并且无论如何您都执行该操作。把它放在第一个'if'中,所以它会除以num2iffnum2不是零。

编辑:它应该是这样的:

if (num2 != 0) {
    divide = something / num2;
    printf("\nInput 3 / Input 2 (int)    %12d", divide);
}
于 2013-02-15T22:22:35.050 回答