把表达示定义一字符串进行输入。然后用两个栈,一个保存操作数,一个保存运算符,你懂的。。
至于从字符串中读入大于9的数。我这里有一个参考。。
程序代码:
/*输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整体,一次存放到
数组a中,编程统计有多少个整数,并输出这些数*/
#include<stdio.h>
#include<string.h>
int Isdigit(char c)
{
if(c>='0'&&c<='9') return 1;
else return 0;
}
int CountInt(char *s,int a[])
{
int i,j,num;
i=0,j=0;
while(s[i])
{
if(Isdigit(s[i]))
{
num=0;
while(Isdigit(s[i]))
{
num=num*10+s[i]-'0';
i++;
}
a[j]=num;
j++;
}
else i++;
}
return j;
}
int main()
{
int i,n;
int a[80];
char s[80];
scanf("%s",s);
n=CountInt(s,a);
printf("there is %d int!\n",n);
for(i=0;i<n;i++)
printf("%d\t",a[i]);
printf("\n");
}