逆波兰表示法
今天学了逆波兰表示法,具体看《带你学C带你飞》的课后作业 s1e40于是就自己写了一个,
/*输入格式每个元素之间用空格隔开只输入一个空格开头只能是数字
例如输入:1 2 +
输出 :3 */
#include <stdio.h>
#define MAX 100
int main(void)
{
char str;//用于存放输入的算式
int array;//用来存放输入的数字
int i=0,j=0,sum=0;// i 遍历strj 遍历array
printf("请输入算式:");
gets(str);
while(str!='\0')
{
if(str==' ')//遇到空字符就,把数字放到,array中
{
array=sum;
sum=0;
i++;
j++;
continue;
}
if(str>='0'&&str<='9')//把输入的字符转换城int类型
sum=(str-48)+sum*10;
switch(str)//遇到运算符,就把前两个数字给拿出来做运算
{
case '+':{
array+=array;
j--;
i++;
break;
}
case '-':{
array-=array;
j--;
i++;
break;
}
case '*':{
array*=array;
j--;
i++;
break;
}
case '/':{
if(array==0)
{
printf("算式错误!\n");
return -1;
}
else
{
array/=array;
j--;
i++;
}
break;
}
}
i++;
}
printf("结果是:%d\n",array);
return 0;
}
如果有更好的方法完成小甲鱼的课后作业的动动手,请指点一下
具体看S1E40:高级宏定义 | 课后测试题及答案
https://fishc.com.cn/thread-81421-1-1.html
(出处: 鱼C论坛)
页:
[1]