一个简单的计算器

//calculate.c
#include<stdio.h>
void yunsuan();

int main()
{
    printf("这个程序只支持加减乘除运算!支持运算优先级!\n\n");
    
    yunsuan();

    return 0;
}

void yunsuan()
{
    double number[100];
    char fuhao[100];
    double total = 0;
    double temp;
    char ch;
    int index1 = 0;
    int index2 = 0;
    int i;

    while(scanf("%lf", &temp) == 0){
    }
    number[index1] = temp;
    
    while(scanf("%c", &ch) == 0){}
    
    while(i != 5 )
    switch(ch){
        case '+':
            fuhao[index2++] = ch;
            while(scanf("%lf", &temp) == 0){}
            number[++index1] = temp;    
            while(scanf("%c", &ch) == 0){}
            break;
        case '-':
            fuhao[index2++] = ch;
            while(scanf("%lf", &temp) == 0){}
            number[++index1] = temp;
            while(scanf("%c", &ch) == 0){}
            break;
        case '*':
            while(scanf("%lf", &temp) == 0){}
            number[index1] *= temp;
            while(scanf("%c", &ch) == 0){}
            break;
        case '/':
            while(scanf("%lf", &temp) == 0){}
            number[index1] /= temp;
            while(scanf("%c", &ch) == 0){}
            break;
        case '=':
            i = 5;
            break;
        default:
            scanf("%c", &ch);
            break;
    }
    
    total = number[0];
    if(fuhao[0] != 0)
        for(int i = 0; i <= index2; i++)
            switch(fuhao[i]){
                case '+':
                    total += number[++i];
                    break;
                case '-':
                    total -= number[++i];
                    break;
                default:
                    break;
            }
            
    printf("结果等于  %f.\n", total);
    printf("\n");
    
    printf("右上角退出!\n");
    yunsuan();
}

猜你喜欢

转载自blog.csdn.net/lang_dye/article/details/79960707