帮帮忙哈。。。。。非常谢谢
题目描述:
有些语言中表达式的运算符使用字符串表示,例如用mul代表*,用div代表/,用add代表+,用sub代表-,用mod代表%。
输入数据及格式:
正常输入数据应为一行,为一个表达式,表达式由两个整数及其中间的运算符字符串(为mul、div、add、sub、mod五个其中之一)表示,之间以一个空格分隔,以回车换行符号’\n’结尾,前后没有多余的空格和换行。
[解决办法]
解析字符串,遇到第一个空格,前面的就是操作数1,然后找到第二个空格,这之间的是操作符,剩下的是操作数2.
[解决办法]
- C/C++ code
#include <stdio.h>#include <string.h>char s[80];char op[4];int a,b,c;int main() { while (1) { fgets(s,80,stdin); if (s[0]=='\n') break; if (4==sscanf(s,"%d %3s %d%c",&a,op,&b,&c)) { if ('\n'==c) { if (0==strcmp(op,"add")) printf("%d + %d\n",a,b); else if (0==strcmp(op,"sub")) printf("%d - %d\n",a,b); else if (0==strcmp(op,"mul")) printf("%d * %d\n",a,b); else if (0==strcmp(op,"div")) printf("%d / %d\n",a,b); else if (0==strcmp(op,"mod")) printf("%d %% %d\n",a,b); } } }}
[解决办法]