| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 297 人关注过本帖
标题:谁给解释下程序运行结果
只看楼主 加入收藏
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
谁给解释下程序运行结果
#include "stdio.h"
void main()
{
    int i,j,t,m;
    int x[4]={0};
    for(i=1;i<=3;i++)
        printf("%d\n",x[i]);
    for(j=0;j<8;j++)
    {
        m=3;
        do{
            t=j%2;
            x[m--]=t;
        }while((j=j/2)!=0);
    for(i=1;i<=3;i++)
        printf("%d",x[i]);
    }   
}
程序的结果为什么会有无穷无尽的001出现????真的想不通啊。。。
搜索更多相关主题的帖子: include void 
2012-10-12 08:12
小糊涂神c30
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:198
专家分:809
注 册:2012-4-25
收藏
得分:10 
#include "stdio.h"
void main()
{
    int i,j,t,m;
    int x[4]={0};
    for(i=1;i<=3;i++)
        printf("%d\n",x[i]);
    for(j=0;j<8;j++)   //j不可能大于8,原因在下面
    {
        m=3;
        do{
            t=j%2;
            x[m--]=t;
        }while((j=j/2)!=0);//原因是此处的j一直在改变,此处j的值最后结构一直为0  0永远小于8,所以会一直循环输出0和1
    for(i=1;i<=3;i++)
        printf("%d",x[i]);
    }   
}
2012-10-12 09:05
爱闹的娃
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:265
专家分:975
注 册:2011-10-23
收藏
得分:10 
while((j=j/2)!=0)????这一句正常???为什么会出现无穷的
001呢,就是因为外层for()循环永远在执行....主要原因在于你
每次都重新给j赋值 0 了....,这里要注意哦....
2012-10-12 09:12
wang155423
Rank: 6Rank: 6
等 级:侠之大者
帖 子:216
专家分:408
注 册:2011-9-4
收藏
得分:0 
问题解决了,谢谢
2012-10-12 19:18
快速回复:谁给解释下程序运行结果
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030636 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved