xdoj-77-表达式求值
作者:互联网
问题描述
表达式由两个非负整数x,y和一个运算符op构成,求表达式的值。
这两个整数和运算符的顺序是随机的,可能是”x op y”, “op x y”或者 “x y op”,例如,“25 + 3”表示25加3,“5 30 *” 表示5乘以30,“/ 600 15”表示600除以15。
输入说明
输入为一个表达式,表达式由两个非负整数x,y和一个运算符op构成,x,y和op之间以空格分隔,但顺序不确定。
x和y均不大于10000000,op可以是+,-,*,/,%中的任意一种,分表表示加法,减法,乘法,除法和求余。
除法按整数除法求值,输入数据保证除法和求余运算的y值不为0。
输出说明
输出表达式的值。
输入样例
样例1输入
5 20 *
样例2输入
4 + 8
样例3输入
/ 8 4
输出样例
样例1输出
100
样例2输出
12
样例3输出
2
#include<stdio.h>
#include<string.h>
int main()
{
int i,a=0,b=0;
char c[20];
gets(c);
for(i=0;c[i]<'0'||c[i]>'9';i++)//寻找第一个数字
{
;
}
for(;c[i]!=' ';i++)//确定第一个数
{
a=a*10+(c[i]-'0');
}
for(;c[i]<'0'||c[i]>'9';i++)//寻找第二个数的第一个数字
{
;
}
for(;c[i]!=' '&&i<strlen(c);i++)//确定第二个数同时防止溢出
{
b=b*10+(c[i]-'0');
}
for(i=0;c[i]!='+'&&c[i]!='-'&&c[i]!='*'&&c[i]!='/'&&c[i]!='%'&&i<strlen(c);i++)//确定运算符
{
;
}
if(c[i]=='+')printf("%d",a+b);
else if(c[i]=='-')printf("%d",a-b);
else if(c[i]=='*')printf("%d",a*b);
else if(c[i]=='/')printf("%d",a/b);
else if(c[i]=='%')printf("%d",a%b);
return 0;
}
标签:样例,xdoj,77,输入,&&,printf,求值,表达式,op 来源: https://blog.csdn.net/m0_62461566/article/details/121795407