c语言入门问题 代码里有什么问题吗 为什么我的结果是垃圾值啊?

2025-03-29 02:25:38
推荐回答(5个)
回答1:

我在这里提一个小小的建议,对于这种多分支选择结构,建议用switch语句做比较简练。而且我看到了程序中有两处不妥之处,第一是进行减法和除法运算没有对num1和num2进行比较,在进行除法运算也没有排除num2==0的情况。至于具体错在哪里,我想应该是double result的定义和输出格式转换这里出错吧%f \n", result);应该是 %lf吧。

回答2:

scanf 中,格式定义和类型必须一致。
scanf("%1f, %1f", &num1, &num2);语句里面"%1f, %1f",是Lf,或者L的小写字母lf。你写成数字1了。改过来就行了。
另外,你那么多if语句不感觉难受吗?用个switch多好。

回答3:

修改后:
#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;

}

回答4:

加个else 还有你输出的换行也没用,你再看看

回答5:

应该使用%lf来进行输入
把scanf那句改成下面的即可
scanf("%lf%lf", &num1, &num2);