C программой для создания простого калькулятора - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь создать простой калькулятор ... Я изучаю программу C Мне нужно написать программу для создания калькулятора с помощью оператора switch. Когда я пытаюсь запустить этот код, программа останавливается посередине при запуске, и я не знаю, что вызывает это. Вот программа.

#include<stdio.h>
void main()
{
    float n1,n2,ans;
    char op,x;
    do
    {
        printf("Enter 1:");
        scanf("%f",&n1);
        printf("Enter 2:");
        scanf("%f",&n2);
        printf("Enter operator:");
        scanf("%c",&op);

        switch(op)
        {
            case'+': ans=n1+n2;break;
            case'-': ans=n1-n2;break;
            case'*': ans=n1*n2;break;
            case'/': ans=n1/n2;break;
            default:printf("Invalid operator\n");
        }

        printf("Answer= %.2f\n",ans);
        printf("Do you want to try it again?(y/n)");
        scanf("%c",&x);
    }
    while(x=='y' || x=='Y');
 }

1 Ответ

0 голосов
/ 23 июня 2019

у вас проблема с буфером.Попробуйте это исправление, которое я сделал

, включая

int main(){
    float n1,n2,ans;
    char op,x;
    do{
        printf("Enter 1:");
        scanf("%f",&n1);
        printf("Enter 2:");
        scanf("%f",&n2);
        getchar();
        printf("Enter operator:");
        scanf("%c",&op);

        switch(op){
            case'+': ans=n1+n2;break;
            case'-': ans=n1-n2;break;
            case'*': ans=n1*n2;break;
            case'/': ans=n1/n2;break;
            default:printf("Invalid operator\n");
        }
        printf("Answer= %.2f\n",ans);
        printf("Do you want to try it again?(y/n)");
        getchar();
        scanf("%c",&x);
        printf("%c\n",x );
    }while(x=='y' || x=='Y');
    return 0;

}

...