我在这里提一个小小的建议,对于这种多分支选择结构,建议用switch语句做比较简练。而且我看到了程序中有两处不妥之处,第一是进行减法和除法运算没有对num1和num2进行比较,在进行除法运算也没有排除num2==0的情况。至于具体错在哪里,我想应该是double result的定义和输出格式转换这里出错吧%f \n", result);应该是 %lf吧。
scanf 中,格式定义和类型必须一致。
scanf("%1f, %1f", &num1, &num2);语句里面"%1f, %1f",是Lf,或者L的小写字母lf。你写成数字1了。改过来就行了。
另外,你那么多if语句不感觉难受吗?用个switch多好。
修改后:
#include
int main(void)
{
int opt;
double num1, num2;
double result;
printf("输入两个正数: ");
scanf("%lf", &num1);
scanf("%lf", &num2);
printf("1.加法 2.减法 3.乘法 4.除法 \n");
printf("选择 : ");
scanf("%d", &opt);
if(opt==1)
result=num1+num2;
if(opt==2)
result=num1-num2;
if(opt==3)
result=num1*num2;
if(opt==4)
result=num1/num2;
printf("结果 : %f \n", result);
return 0;
}
加个else 还有你输出的换行也没用,你再看看
应该使用%lf来进行输入
把scanf那句改成下面的即可
scanf("%lf%lf", &num1, &num2);