while()循环问题

堵刻 2012-11-29 08:03:41
while(1)
{
while(i<10)
{
b[i] = 1 + i;
i++;
}
for(i = 0;b[i];i++)
printf("%d ",b[i]);
sleep(1);
}
这个有问题吗,我在linux下运行的,求解?
...全文
338 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
七神之光 2012-12-03
  • 打赏
  • 举报
回复
引用 26 楼 gaochizhen33 的回复:
引用 20 楼 fatg1988 的回复:for(i = 0;b[i];i++) 这个没问题 他定义了b[10]=0了 估计是数组定义的时候是 new int【10】。。。 你确定他写的 int b[10] = 0; 是指b[10]=0?不是b[0]到b[9]为0?
确实没注意 他没有写。。。。
ranxufeng 2012-11-30
  • 打赏
  • 举报
回复
sleep(1);请问这是自动退出吗? 如果是第一个字母要大写 而且1表示什么 1毫秒?sleep(是毫秒为单位的);
堵刻 2012-11-30
  • 打赏
  • 举报
回复
for(i = 0;b[i];i++) { printf("\n"); printf("%d\n",b[i]); } 加个'\n'可以输出结果,不会死在那里,这是什么原因?求解,是缓冲区的问题吗?
子善旬 2012-11-30
  • 打赏
  • 举报
回复

while(1)
{
   while(i<10)               // i没有初始化
   {
        b[i] = 1 + i;
        i++;
   }
   for(i = 0;b[i];i++)               // b[i]没有为0的,循环退不出
       printf("%d ",b[i]);
    sleep(1);
}
堵刻 2012-11-30
  • 打赏
  • 举报
回复
for循环改成这样也死for(i = 0;i < 10;i++) 求解。。。。。
eeeee5123 2012-11-30
  • 打赏
  • 举报
回复
#include<stdio.h> #define n 10 main() { int i,b[n]; i=0; while(i<10) { b[i]=i+1; i++; } for(i=o;i<10;i++) prinf("%d",b[i]); print("\n"); sleep(1); system(“pause”); } 这样该就可以 加while(1) 不断的打印
gaochizhen33 2012-11-30
  • 打赏
  • 举报
回复
引用 20 楼 fatg1988 的回复:
for(i = 0;b[i];i++) 这个没问题 他定义了b[10]=0了 估计是数组定义的时候是 new int【10】。。。
你确定他写的 int b[10] = 0; 是指b[10]=0?不是b[0]到b[9]为0?
gaochizhen33 2012-11-30
  • 打赏
  • 举报
回复
引用 5 楼 a161619 的回复:
编译没问题,现在就是不知道怎么回事,求解。。
肯定有问题啊。

 for(i = 0;b[i];i++)//数组越界后,b[10]未定义,你能确定这个数是多少么?能保证他能按整形输出么?
wizard_tiger 2012-11-30
  • 打赏
  • 举报
回复
b[i]一直不为0,所以for循环会一直循环下去,变成死循环。
常如意 2012-11-30
  • 打赏
  • 举报
回复
在这个程序中b[i] 应该不会为 0 ,for循环何时终结呢?
banditi225 2012-11-30
  • 打赏
  • 举报
回复
while(1) { while(i<10) { b[i] = 1 + i; i++; } for(i = 0;i<10;i++) printf("%d ",b[i]); sleep(1); }
wanglu343280746 2012-11-30
  • 打赏
  • 举报
回复
引用 楼主 a161619 的回复:
while(1) { while(i<10) { b[i] = 1 + i; i++; } for(i = 0;b[i];i++) printf("%d ",b[i]); sleep(1); } 这个有问题吗,我在linux下运行的,求解?
死循环,没有跳出循环的条件
七神之光 2012-11-30
  • 打赏
  • 举报
回复
for(i = 0;b[i];i++) 这个没问题 他定义了b[10]=0了 估计是数组定义的时候是 new int【10】。。。
14号选手 2012-11-30
  • 打赏
  • 举报
回复
for循环的第二表达式导致数组越界,最终进入死循环
SKATE11 2012-11-29
  • 打赏
  • 举报
回复
你这for是个死循环了
zhaoming262350 2012-11-29
  • 打赏
  • 举报
回复
#include<stdio.h> #define N 10 int main(void) { int i,b[N]; while(1) { while(i<10) { b[i] = 1 + i; i++; } for(i = 0;b[i];i++) printf("%d ",b[i]); sleep(1); } } 在linux命令窗口下运行没有错误的
搬砖随想录 2012-11-29
  • 打赏
  • 举报
回复
引用 6 楼 zhenwo123 的回复:
引用 3 楼 gaohuaid 的回复:你的Sleep中的s是不是小写了? 谁说sleep要大写! 没看出问题,最后打印完就死循环了吧!
引用 8 楼 zigui12 的回复:
引用 3 楼 gaohuaid 的回复:你的Sleep中的s是不是小写了? 在VC中Sleep中的第一个英文字符为大写的"S",但标准C中是sleep, 不要大写.. 下面使用大写的来说明,具体用什么看你用什么编译器。简单的说VC用Sleep,别的一律使用sleep! 引用 4 楼 saishow 的回复:for(i = 0;b[i];i++) 换个吧,免得出错……
我用的VC6.0和Dev都要大写
startservice 2012-11-29
  • 打赏
  • 举报
回复
死循环。。。
bakar_yang 2012-11-29
  • 打赏
  • 举报
回复
不死就怪了 for(i = 0;b[i];i++) printf("%d ",b[i]); b[i]也没有为0的时候,自然就死里了 你的sleep在循环外,循环都出不去,它一点用都没有
eeeee5123 2012-11-29
  • 打赏
  • 举报
回复
也刚学c不太懂 for的条件 b[i]这个换成i<10啊 b[]这个大于0是不是一直成立 死循环了 。 while(1)也是死循环 看不出什么意义啊, 貌似变量都没声明。。不太懂linux环境,用的tober c 感觉好多错的
加载更多回复(10)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧