题目描述 Description

两位正整数的简单算术运算(只考虑整数运算),算术运算为:

+,加法运算;
-,减法运算;
*,乘法运算;
/,整除运算;
%,取余运算。

算术表达式的格式为(运算符前后可能有空格):
运算数 运算符 运算数

请输出相应的结果。
输入输出格式 Input/output
输入:
一行算术表达式。
输出:
整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。
输入输出样例 Sample input/output
样例测试点#1
输入样例:
32+64
输出样例:
96
思路:可以先用一个字符串存入这个表达式,分别从前往后,从后往前找数字,从前往后遍历这个数组,在后面一个字符不为空格的情况下,变为数字,从后往前遍历这个数组,在前面一个字符不为空格情况下,变为数字,然后再扫描一遍这个数组看看是什么运算符号,最后判断运算符号输出结果即可。
代码如下:
 #include <stdio.h>
#include <string.h>
int main()
{
int n,i;
char a[];
int f=,l=;
gets(a);
for(i=;i<strlen(a);i++)//首个两位数
{
if(a[i]>=''&&a[i]<='')//如果是数字
{
if(a[i+]>=''&&a[i+]<='')//如果后面那个也是数字
{
f=(f+a[i]-)*;//变为数字往前进一位
}
else//否则是空格什么的直接存为数字
{
f=f+a[i]-;
break;
}
}
}
for(i=strlen(a);i>;i--)//第二个两位数
{
if(a[i]>=''&&a[i]<='')//如果是数字
{
if(a[i-]>=''&&a[i-]<='')//如果前面那个也是数字
{
l=l+a[i]-;
}
else//否则是空格什么的直接存为数字
{
l=l+(a[i]-)*;//变为数字往前进一位
break;
} /* 35+14 */
}
}
for(i=;i<strlen(a);i++)
{
if(a[i]=='+') printf("%d\n",f+l);
else if(a[i]=='-') printf("%d\n",f-l);
else if(a[i]=='*') printf("%d\n",f*l);
else if(a[i]=='/') printf("%d\n",f/l);
else if(a[i]=='%') printf("%d\n",f%l);
}
return ;
}
05-11 11:05