其他分享
首页 > 其他分享> > xdoj-77-表达式求值

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