标题:4*5矩阵,for嵌套
只看楼主
gaj000
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-12-17
结帖率:0
已结贴  问题点数:20 回复次数:4 
4*5矩阵,for嵌套
输出4*5的矩阵

#include <stdio.h>
 
int main()
{
    int i,j,n=0;
    for( i = 1;i <= 4; i++ )
        for( j = 1; j <= 5; j++,n++ )  //用n来累计输出数据的个数
        {
            if(n % 5 == 0)               //控制输出5个数据后换行
                printf("\n");
            printf("%d\t",i*j);
        }
        printf("\n");
    return 0;
}


问:当j=5,n=4
           j=6,   n=5   不应该是跳出内部循环,为什么还会执行if,输出换行
我是哪里理解有问题?
搜索更多相关主题的帖子: for 嵌套 printf 矩阵 输出 
2020-12-17 15:53
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
听不懂你哪里不懂,你可以这样问:
    这段程序输出是……
    但我认为输出应该的是……
    因为……


j=6,   n=5   不应该是跳出内部循环,为什么还会执行if,输出换行
是跳出循环了呀,但第二次还会执行内部循环

程序代码:
#include <stdio.h>

int main( void )
{
    for( size_t r=0; r!=4; ++r )
        for( size_t c=0; c!=5; ++c )
            printf( "%zu%c", (r+1)*(c+1), "\t\n"[c+1==5] );
}
2020-12-17 16:15
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
得分:10 
因为 j=6 时 是跳出内循环for的 ,而此时 n=5
第一个for循环 i=1
执行第二次循环 i=2
进入第二次内循环的第一次 j=1,n=5
满足 n%5==0 输出 换行符号

所以说,这个换行符 是上一次内循环留下来的给这一次输出

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2020-12-17 19:29
gaj000
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-12-17
得分:0 
回复 2楼 rjsp
好的,下次注意提问方式,谢谢了😜
2020-12-17 20:14
gaj000
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2020-12-17
得分:0 
回复 3楼 do8do8do8
看到你说的第二次输入…,秒懂了。谢谢了(^~^)
2020-12-17 20:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-504299-1-1.html




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

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