2019年上半年程序员下午试卷案例

您所在的位置:网站首页 程序员题库 2019年上半年程序员下午试卷案例

2019年上半年程序员下午试卷案例

2023-09-02 14:10| 来源: 网络整理| 查看: 265

【说明】 下面程序运行时,对输入的表达式进行计算并输出计算结果。设表达式由两个整数和一个运算符(+或-)构成,整数和运算符之间以空格分隔,运算符可以出现在两个整 数之前、之间或之后,整数不超过4位,输入的两个整数和运算符都用字符串表示。 例如,输入分别为“25+7”、“+25 7”、“25 7+”时,输出均为“25 + 7 = 32”。

【C代码】 #include int 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) ); } }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3