0

私はscanfにユーザーからの入力を数値の形式で受け取り、2つの数値を使用して簡単な計算を実行しようとしています.私が抱えている問題は、数値に何を入力しても、常にちょうど吐き出す 1 助けていただければ幸いです

含む

 int main(int argc, char const *argv[])
{
float in1,in2,value;
char c;

printf("Enter the operation of your choice:\n");
printf("A. add           S. subtract\n");
printf("M. multiply      D. divide\n");
printf("Q. quit\n");
c=getchar();

while( c !='Q' && c!='q')
{
    printf("please enter your first number:");
    scanf("%g", &in1);
    printf("%g\n",in1 );

    printf("please enter your second number:");
    scanf("%g", &in2);
    printf("%g\n",in2 );

    if(c == 'S' || c =='s')
        if(in2 == 0)
        {
            printf("you have selected subtration however\n");
            printf("the value you entered was 0\n");
            printf("please enter a value greater than 0\n");
            scanf("%lg",&in2);
        }

    if(c == 'a' || c == 'A')
    {
        value = in1+in2;
        printf("%lg + %lg = %lg\n",in1,in2,value );
    }

    if(c == 's' || c == 'S')
    {
        value = in1-in2;
        printf("%lg - %lg = %lg\n",in1,in2,value );
    }   

    if(c == 'm' || c == 'M')
    {
        value = in1*in2;
        printf("%lg * %lg = %lg\n",in1,in2,value );
    }   

    if(c == 'd' || c == 'D')
    {
        value = in1/in2;
        printf("%lg / %lg = %lg\n",in1,in2,value );
    }   
    if (c !='Q' && c !='q')
    {
        printf("Enter the operation of your choice:\n");
        printf("A. add           S. subtract\n");
        printf("M. multiply      D. divide\n");
        printf("Q. quit\n");    
    }
    c=getchar();
}
return 0;
}
4

1 に答える 1

0

変数をdoubleの代わりに定義してくださいfloatgetchar()また、 while ループの最後にもう 1 つ必要だと思います。最初に 2 番目の数字を入力すると、Enter キーは の一部と見なされc = getchar()ます。オプションをもう一度読むには、別のc = getchar().

于 2013-02-13T16:02:33.900 に答える