C语言问题,希望高手能够帮忙解答一下,谢谢了。

#include<stdio.h>intmain(){inta=1,b=2,c=a*b;while(c<10000){++a;}printf("%d\n",a);retu... #include<stdio.h>
int main()
{
int a=1,b=2,c=a*b;
while(c<10000)
{
++a;
}
printf("%d\n",a);
return 0;
}
为什么,调试,什么都不显示呢?就光标闪啊闪的。
展开
 我来答
leo__sum
2012-10-14
知道答主
回答量:18
采纳率:0%
帮助的人:9.2万
展开全部
你这个while循环的条件是c<10000,但是你的c始终是初值2,并没有改变过。这就意味着你的while循环是一个死循环,所以printf语句永远都不会执行到,当然就没有输出了。
你可以在将c<10000改成c++<10000,这样没循环一次c的值就加一,循环9999次后执行printf指令
追问
我的C,不是一个变量么?我在花括号里面执行了一次++a,那C也应该变的吧?
追答
a和c是两个完全不同的变量,++a的含义可以理解为a增加1,所以c的值当然不会变化。
我猜想lz你是理解错“变量"这个词的含义了,c是变量,并不是说c会因为前面的"c=a*b"这句话而随着a的变化而变化。程序代码是由上而下逐句执行的,c=a*b在执行一次后就没有作用了,除非是通过循环或者goto指令等其他方式再次执行。
钝角111度
2012-10-14 · TA获得超过1.6万个赞
知道大有可为答主
回答量:2444
采纳率:63%
帮助的人:645万
展开全部
#include<stdio.h>
int main()
{
int a=1,b=2,c;//c应该先定义在使用。不能直接进行运算
while(c<10000)
{
++a;
c=a*b;//运算式应该在循环里面
}
printf("%d\n",a);
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
濮方雅BX
2012-10-14 · TA获得超过4042个赞
知道大有可为答主
回答量:2482
采纳率:60%
帮助的人:2463万
展开全部
在while里死循环了,你要加上一句在while的花括号里面
c=a*b;
追问
我的C,不是一个变量么?我在花括号里面执行了一次++a,那C也应该变的吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
paradise300
2012-10-14 · TA获得超过3560个赞
知道大有可为答主
回答量:2589
采纳率:84%
帮助的人:501万
展开全部
因为你++a之后,C的值根本没变,程序一直处于死循环中。加上c=a*b;吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
405816882
2012-10-15 · 超过12用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:25.8万
展开全部
因为c永远不会大于10000所以死循环。一直在计算。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mystic01
2012-10-14 · 超过31用户采纳过TA的回答
知道答主
回答量:161
采纳率:0%
帮助的人:63万
展开全部
你的是一死循环,程序并没有错,但它执行时是跳不出死循环,输不出结果,可以将c<10000改成c++<10000
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
m_奋斗
2012-10-15
知道答主
回答量:12
采纳率:0%
帮助的人:1.6万
展开全部
这个while是个死循环可好啊,c=a*b加到循环体就好了啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式