题目1101:计算表达式

来源:互联网 发布:电脑自带录屏软件 编辑:程序博客网 时间:2024/05/24 05:08
题目描述:

对于一个不存在括号的表达式进行计算

输入:

存在多种数据,每组数据一行,表达式不存在空格

输出:

输出结果

样例输入:
6/2+3+3*4
样例输出:
18

看到一个挺好的算法

#include <stdio.h>int main(){    int i,j,k,a[100];    char x;    while(scanf("%d",&k)!=EOF)    {       a[0]=0;       i=0;       a[++i]=k;        while(scanf("%c",&x)!=EOF&&(x=='+'||x=='-'||x=='*'||x=='/'))        {          scanf("%d",&k);           if(x=='+')             a[++i]=k;           else if(x=='-')             a[++i]=-1*k;           else if(x=='*')             a[i]*=k;           else             a[i]/=k;        }        for(j=1;j<=i;j++)           a[0]+=a[j];        printf("%d\n",a[0]);    }    return 0;}


0 0
原创粉丝点击