粟子 - 2006-8-5 0:39:00
main()
{
int a,b;
for(a=0;a<=10;a++)
{
if(a*2+(10-a)*3==26)
{
b=10-a;
printf("%d %d",a,b);
}
}
getch();
}
运算结果;a=4,b=6(是正确的结果_
main()
{
int a,b;
for(a=0;a<=10;a++)
{
if(a*2+(10-a)*3==26)
{
b=10-a;
}
printf("%d %d",a,b);
}
getch();
}
运算结果不符合预期的.
本人好奇,想试试printf()语句的一些作用范围.
于是在该程序中将printf()做了变化.为什么结果不同?
有没有人知道其中的调试过程,就是各个数据值在各语句中的变化情况?
请详细讲给我听.因为我在写循环和选择语句时应该把printf()语句的位置写错.导致很多错误发生.
麦兜仔仔 - 2006-8-5 15:11:00
你想追踪变量数据的话进入后按Ctrl+F7然后输入你要看的变量名~然后按F7或F8跟踪~
麦兜仔仔 - 2006-8-5 15:14:00
这道题一个的printf语句是在for语句中,一个是在循环当中~
当然会有不同啦~
你自己按程序的执行顺序去分析就知道了
天下奇才 - 2006-8-5 16:20:00
第一个输出的是如何a*2+(10-a)*3==26时的a,b。第二个输出的a则不是符合a*2+(10-a)*3==26时的,而是循环结束以后的a,结果应该是a=11,b=6吧
其实只需要了解数据在计算机中的表示形式,了解这种问题的解题思路就不太困难了(尽管有时候要解出来可能还有一些问题,因为你毕竟不是计算机)。有时间,认真看看谭教授的书,在这个问题上,它的书介绍的还算详细
一条小小虫 - 2006-8-22 19:53:00
深奥不懂
北极星的眼泪 - 2006-8-24 2:16:00
第一个程序,printf()在if()条件语句内,只有当if里面的条件成立时才print();
第二个程序,print()在不if()语句里面,在外面FOR循环内.也就是,无论IF条件成不成立,每一个循环都要做printf()语句,产生多个结果.同时第二个程序里面.b没有赋初值,当if不成立时.输出的都是-858993460
Meight - 2006-10-5 16:44:00
好好看一下C语言基础吧
© 2000 - 2026 Rising Corp. Ltd.