c程序中,代码的顺序不同,为什么会有两种答案?

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:15:22
第一个程序:
main()
{
int a,b,c;
c=a+b;
scanf("%d",&a);
scanf("%d",&b);
printf("a+b=%d\n",c);
getch();
return 0;
}
经上机操作,验证该程序仅仅出现两个warnings,但是却得不出正确的答案
而第二个程序:
main()
{
int a,b,c;
scanf("%d",&a);
scanf("%d",&b);
c=a+b;
printf("a+b=%d\n",c);
getch();
return 0;
}
却一切显示正常,能够得到所期望的答案

望哪位高手帮助指点迷津,谢谢!

进行a+b的计算前没有对a和b进行赋值 所以就出现了警告
定义a和b但没有给a和b赋值系统就随机给a和b赋值 c=a+b; c就不正确了
之后给a和b赋值也没有影响c很大所以就是哪个不定的值了

呵呵,因为代码第二行:c=a+b前没有对a和b进行赋值!进行a+b的计算当然有警告并得不到正确答案了

没没附值 计算一定是错误的