A-A+

请补充main函数 该函数的功能是:从键盘输入只有两个整数参与运算的一个四则运算式 然后计算

2022-08-05 20:18:13 问答库 阅读 171 次

问题详情

请补充main函数,该函数的功能是:从键盘输入只有两个整数参与运算的一个四则运算式,然后计算出它的值。注意数字全部为正整数。
例如,输入308*28,结果为8624.000000。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio, h>
main ()
{
int a=0, b=0, flag=l, fg=l;
float result;
char *p, ch;
char str[10];
clrscr ();
printf("n Input a string n");
gets (str);
p=str;
while (*p)
{
if (*p>="0" &&*p<="9" && flag==l )
a=【 】;
else
if (fg)
{
ch=*p;
flag=2;
fg=0;
}
if (*p>="0 " &&*p<="9" &&flag==2)
b=【 】;
p++;
}
switch(【 】)
{
case "+": result=a+b;break;
case "-": result=a-b;break;
case "*" :result=a*b;break;
case "/" :result= (float) a/b;break;
printf ("nresult=%f", result);
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:a*l0+*p-'0'b*10+*p-'0'ch
a*l0+*p-'0'b*10+*p-'0'ch 解析:第一空:变量a用来保存第一个整数,*p-‘0’得到指针p所指的数字字符的对应数字。第二空:同理,变量b用来保存第二个整数。第三空:字符ch中保存的是四则运算符,而switch语句中case后面的常量表达式都是运算符,所以为了能够匹配,switch后面括号中的表达式应该为ch。

考点:函数,整数