提问:54.程序改错:【程序功能】输入一个字符串,按字符串中包含的算式完成整数四则运算,输出运算结果。
程序改错:【程序功能】输入一个字符串,按字符串中包含的算式完成整数四则运算,输出运算结果。若运算符错误(除“+,-,*,/”外的其他字符),则输出“operatorerror!”。【测试数据与运行结果】输入1234+567时,输出应为:1234+567=1801输入12/2时,输出应为:12/2=6【含有错误的程序】#include<stdio.h>#include<stdlib.h>#include<ctype.h>voidstoi(char*s,int*i){longn=0;while(isdigit(s[*i]))n=n*10+s[(*i)++];returnn;}longadd(char*s){inti=0,*pi;charop;longa=0,b=0,c;a=stoi(s,pi);op=s[i++];b=stoi(s,pi);switch(op){case'+':returna+b;case'-':returna-b;case'*':returna*b;case'/':if(b==0)printf("div!0");exit(0);returna/b;default:printf("operatorerror!");exit(0);}}intmain(void){chars[80];gets(s);printf("%s=",s);printf("%ld\n",add(s));return0;}请改正并认真测试程序的正确性。将完整源代码以文本方式提交
网友回答:
对所给的程序进行了全面改错,程序已经能按样例运行:
程序改了5处,你可对照下面程序运行验证: