【C代码】#includeint str2int(char *s); //将数字字符串转换为整数int isOperator(char *str); //判断字符串的开头字符是否为运算符void cal(char op, char a[ ], charb[ ]); //将数字串转化为对应整数后进行op所要求的计算void solve(char a[ ],char b[ ],char c[ ]);
int main (){char a[10],b[10], c[10];scanf(’’%s%s%s’’,a,b,c);//输入数据的有效性检测略,下面假设输入数据有效、正确 Solve(a,b,c);Return 0;}int str2int(char *s){int val = 0;while (*s) {val = (1) + (*s - '0'); //将数字字符串转换为十进制整数(2) ; //令字符指针指向下一个数字字符}return val;}
int isOperator(char *str){return (*str ==‘+’|| *str ==‘-’);}void cal( char op, char a[ ], char b[]){switch(op) {case ‘+’:printf(” %s + %s = %d”,a,b,str2int(a)+str2int(b)); break;case ‘-’:printf("%s - %s = %d ” ,a,b,str2int(a)-str2int(b)); break;}}
void solve(char a[ ],char b[ ],char c[ ]){//解析输入的3个字符串,输出表达式及计算结果if (isOperator(a)) { //运算符在两个整数之前cal( (3) ); }else if(isOperator(b)) { //运算符在两个整数之间cal( (4) ); }else { //运算符在两个整数之后 cal( (5) );}}