脑回路:
1)该输入为字符串,可一个字符一个字符的读入,直到读入字符‘@’循环结束
2)该后缀表达式的内容分为6种情况,分别是 数值、'.' 、'+'、'-'、'*'、'/',因此可以用if-else或者switch语句来表达
注意:该后缀表达式的操作数可能为多位数
代码:(拿来吧你~)
#include<stdio.h>
#define N 1000
int a[N];
int main (void){
char c;
int i=0;
int m,num=0;
scanf("%c",&c);//输入以‘@’结尾的字符串 ,一个字符一个字符的读入
while(c!='@'){
switch(c)
{
case '.':
a[i]=num; //当输入为‘.’时将num值存入 一维数组中
num=0; //更新num的值
i++;
break;
case '+':
m=a[i-2]+a[i-1];
i=i-2;
a[i]=m;
i++;
break;
case '-':
m=a[i-2]-a[i-1];
i=i-2;
a[i]=m;
i++;
break;
case '*':
m=a[i-2]*a[i-1];
i=i-2;
a[i]=m;
i++;
break;
case '/':
m=a[i-2]/a[i-1];
i=i-2;
a[i]=m;
i++;
break;
default: //可认为当输入为数字时
num=num*10+(c-'0');
}
scanf("%c",&c);
}
printf("%d",a[i-1]);
return 0;
}
知识点:
字符串、栈、线性结构等等。
--->(谢谢支持,若有错误,欢迎评论区留言指正哈~)
听说爱点赞人都落落大方耶~ (嘿嘿﹡ˆoˆ﹡ )