| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2683 人关注过本帖
标题:for循环输出问题
只看楼主 加入收藏
kyyoyong
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-10-8
收藏
 问题点数:0 回复次数:5 
for循环输出问题
#include<stdio.h>
void main()
{
int i,j;
    int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};

    for(i=0;i<3;i++){printf("\n");//printf("\n");的位置决定了怎样输出!
        for(j=0;j<4;j++)  
        {
            printf("%3d",a[i][j]);
    }

    }
}
为什么这个pintf一定要放在第一个循环后面而不能放在第二个循环后面才能输出矩阵?
2012-10-12 19:38
suishuhao
Rank: 2
等 级:论坛游民
帖 子:89
专家分:10
注 册:2012-9-25
收藏
得分:0 
第一次循环时,j还没有初始值呢。怎么输出!
2012-10-12 19:43
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:0 
放到第二个循环后边应该也可以输出矩阵啊。

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-10-12 20:17
LShang
Rank: 4
来 自:China
等 级:业余侠客
威 望:3
帖 子:183
专家分:258
注 册:2010-12-24
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

看图,可以输出的啊。

学如逆水行舟,不进则退
士不可以不弘毅,任重而道远
2012-10-12 20:20
Eumenides_me
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:151
注 册:2012-9-26
收藏
得分:0 
你说的应该是printf("\n");的位置是吧?
第一:你给出的程序中的printf("\n");是在第一个for内,第二个for前,并不是在第一个for之后。
第二:如果你说的是printf("\n");的位置,那么按你说的,将printf("\n");移动到第二个for之后,依然可以输出矩阵。
估计你说的不能输出矩阵的情况,是你把printf("\n");移动到了第一个for循环之后了。那样就不能输出矩阵了。
因为你第二个for循环所完成的是输出一行,,如果你的printf("\n");在第一个for之后,那么在第二个for输出完一行后,不会进行换行,
而直接输出第二行。为了避免这种情况,你需要在每次输出一行后,进行换行,就是在第二个for之后加上printf("\n");
你可能还会问为什么printf("\n");在第一个for和第二个for之间的时候还能得到一样的结果?
这两个输出的结果并不是完全一样,你会发现,第二种方法输出的第一行是空行,数据从第二行开始输出。
2012-10-12 20:22
天剑山
Rank: 4
等 级:业余侠客
威 望:3
帖 子:119
专家分:266
注 册:2012-8-3
收藏
得分:0 
如果你把printf放在第二个循环内,则效果是每打一个数据换一吃行,如果放在第一个循环内第二个循环外,则每打印一数据每换一次行
2012-10-12 20:33
快速回复:for循环输出问题
数据加载中...
 
   



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

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