标题:关于《c程序设计》上一简单矩阵打印的例题的疑问
取消只看楼主
fallenpeanut
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2015-4-8
结帖率:100%
 问题点数:0 回复次数:2 
关于《c程序设计》上一简单矩阵打印的例题的疑问
#include<stdio.h>
int main()
{
    int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
    int*p;
    for(p=a[0];p<a[0]+12;p++)
    {if ((p-a[0])%4==0) printf("\n");
    printf ("%4d",*p);
    }
    printf("\n");
    return 0;
}

课本上正确的码如上,不理解的是红色字体部分。
程序不是按顺序读取语言的么
1.为什么不是先打印再另起一行,而是先检验是否需要另起一行再打印?
2.如果先另起一行再打印说得通的话,在循环的第一次(即*a[0]被打印出来),不应该就有另起一行么?

额,我表述得不大清楚,谢谢先!

[ 本帖最后由 fallenpeanut 于 2015-4-21 17:12 编辑 ]
搜索更多相关主题的帖子: 课本 return include c程序设计 
2015-04-21 17:10
fallenpeanut
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2015-4-8
得分:0 
#include<stdio.h>
int main()
{
    int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
    int*p;
    for(p=a[0];p<a[0]+12;p++)
    {printf ("%4d",*p);
    if ((p-a[0])%4==0) printf("\n");
    }

    printf("\n");
    return 0;
}

我的逻辑中这样是正确的,哪里出问题了?谢谢!
2015-04-21 17:13
fallenpeanut
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2015-4-8
得分:0 
懂了,第一个数和第四个数之间有三个间隔……
谢谢!

[ 本帖最后由 fallenpeanut 于 2015-4-21 17:26 编辑 ]
2015-04-21 17:23



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




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

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