1
do{        
            float diameter;

            scanf("%f",&diameter);  
            Printf("Please input diameter");
            if(cheack1(diameter) == 0){
                Printf("Please input a valid number greater than 0");
            }else{
                circle(&area, &perimeter, diameter);
            }

            int cheack = cheack1(diameter);
}while(cheack == 1);

do-while ループに問題があります。ご覧のとおり、私はすでに宣言しています

int cheack = cheack1(diameter); 入力がcheack1(diameter);正しいかどうかを確認し、正しい場合は 1 を返します。

しかし、私のエラーは次のとおりです。

p7t5.c: In function ‘main’: p7t5.c:87:11: error: ‘cheack’ undeclared (first use in this function) do-while ループwhile(cheack == 1);の中で覚えていない ようです。cheack

4

7 に答える 7

0
do{        
        float diameter;

        scanf("%f",&diameter);  
        Printf("Please input diameter");
        if(cheack1(diameter) == 0){
            Printf("Please input a valid number greater than 0");
        }else{
            circle(&area, &perimeter, diameter);
        }

        int cheack = cheack1(diameter); /*declare this integer before the 'do.while' loop begins*/
} while(cheack == 1);

私はこれを次のように変更しました:

int cheack = cheack1(diameter); /*Now the integer is declared before the do-while loop begins*/

 do{        
        float diameter;

        scanf("%f",&diameter);  
        Printf("Please input diameter");
        if(cheack1(diameter) == 0){
            Printf("Please input a valid number greater than 0");
        }else{
            circle(&area, &perimeter, diameter);
        }


} while(cheack == 1);

ただし、このループを呼び出す前に、他の変数が宣言されていることを確認してください。そうしないと、それらはループ内にのみ存在し、最初のループ/実行後に消えてしまいます。

于 2013-10-03T09:02:35.937 に答える