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ステートメントについての読み物を調べていて、フォーマットは正しいと思いますが、明らかにエラーがあります。

ありがとう。

編集:

私がdivideを定義するコードは次のとおりです。

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

ほとんどの場合、ゼロで除算しています。変数は「if」の前に設定され、divideとにかくその操作を実行します。それを最初の'if'の中に入れて、それがゼロとは異なるnum2iffで除算されるようにします。num2

編集:次のようになります:

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