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;
}
为什么,调试,什么都不显示呢?就光标闪啊闪的。 展开
int main()
{
int a=1,b=2,c=a*b;
while(c<10000)
{
++a;
}
printf("%d\n",a);
return 0;
}
为什么,调试,什么都不显示呢?就光标闪啊闪的。 展开
7个回答
展开全部
你这个while循环的条件是c<10000,但是你的c始终是初值2,并没有改变过。这就意味着你的while循环是一个死循环,所以printf语句永远都不会执行到,当然就没有输出了。
你可以在将c<10000改成c++<10000,这样没循环一次c的值就加一,循环9999次后执行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指令等其他方式再次执行。
展开全部
#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;
}
int main()
{
int a=1,b=2,c;//c应该先定义在使用。不能直接进行运算
while(c<10000)
{
++a;
c=a*b;//运算式应该在循环里面
}
printf("%d\n",a);
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在while里死循环了,你要加上一句在while的花括号里面
c=a*b;
c=a*b;
追问
我的C,不是一个变量么?我在花括号里面执行了一次++a,那C也应该变的吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你++a之后,C的值根本没变,程序一直处于死循环中。加上c=a*b;吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为c永远不会大于10000所以死循环。一直在计算。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的是一死循环,程序并没有错,但它执行时是跳不出死循环,输不出结果,可以将c<10000改成c++<10000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个while是个死循环可好啊,c=a*b加到循环体就好了啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询