请问怎么用c语言写一个可以实现加减乘除四则运算的计算器!

2024年11月30日 05:41
有1个网友回答
网友(1):

#include

void
js(float *i,int j,char c)
{
    float m;
    scanf("%f",&m);
    if(c=='*')
    i[j]=i[j]*m;
    else
    i[j]=i[j]/m;
}

void js2(float *i, char *c, int j, int k)
{
    int l = 0;
    for (int o=0; o<=k; o++)
    {
        if (c[o] == '+')
            i[l+1] = i[l] + i[l+1];
        else
            i[l+1] = i[l] - i[l+1];
        l++;
    }
}

int
main(void)
{
    int ic=0,j=0,k=0;
    float i[100];
    char c[100];
    while(1)
    {
        if(ic==0)
        {
            scanf("%f",&i[j++]);
            ic=1;
        }
        if(ic=1)
        {
            c[k++]=getchar();
            if(c[k-1]=='*'||c[k-1]=='/')
            {
                js(i,j-1,c[k-1]);
                k--;
                continue ;
            }
            else if(c[k-1]=='\n')
            break;
            ic=0;
        }
    }
    js2(i,c,j-1,k-2);
    printf("%f", i[j-1]);
    return 0;
}

算法流程:

1,如果读入数字就把它存入数组中,

2,如果读入加,减号就存如另一个数组用,如果读入乘 除号,就再读入一个数字,从存数字的数组拿出两个数字进行乘 除运算。把结果存入数组中,这么重复直到读入回车键的符号。

3,读到回车符号后,就从存符号的数组中拿出一个符号,再从存数字的数组中拿出两个数字进行相应计算,接着再拿出一个数字一个符号和之前计算结果进行相应计算,一直重复,直到所有符号都拿出来了。

4,剩下的最后一个数字就是计算结果。


注:这个是我是我很久之前回答别人的,地址是https://zhidao.baidu.com/question/454652508527253645