| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4553 人关注过本帖
标题:新手,关于for循环的理解
只看楼主 加入收藏
csu0801
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-9
收藏
 问题点数:0 回复次数:14 
新手,关于for循环的理解
#include<stdio.h>
int main()
{
int i,j,n=0;
for(i=1;i<=4;i++)
    for(j=1;j<=5;j++,n++)
    {
        if(n%5==0) printf("\n");//控制在输出5个数据之后换行。
        printf("%d\t",i*j);
    }
printf("\n");

}
[local]1[/local]
问题就在换行这句,当j=5时候,n=4,这时执行花括号的循环----然后执行j++,n++,j=6,n=5-----然后执行循环条件j<=5为假,那就不会执行花括号里面的程序了,虽然n%5==0,但是不执行了啊,怎么会输出换行符呢?????

我试着打了程序,确实可以得到书上的结果。。。。

求指导

[此贴子已经被作者于2016-5-6 23:01编辑过]

搜索更多相关主题的帖子: 换行符 include 
2016-05-06 23:00
csu0801
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-9
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-05-06 23:02
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
意思是:如果继续打印输出时控制输出5个数据后换行,最后输出完了也换行。
2016-05-06 23:43
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:0 
for循环每次循环都会判断if(i%5==0)是否成立,这里最后一次就是第五次循环,它会执行if(i%5==0),然后printf("\n");直到循环语句里所有判断是否执行,执行完毕才会结束执行。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-05-07 13:22
minions3344
Rank: 1
来 自:杭州
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-2-24
收藏
得分:0 
你程序最后不是有一个换行符吗,等循环完了之后之后的printf("\n");
2016-05-07 14:29
csu0801
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-9
收藏
得分:0 
回复 3楼 吹水佬
您好。
可是n初始值是0,j初始值是1,j=6时,n=5,这时候n%5==0,但是j<=5为假啊,循环体不是不执行吗????
2016-05-07 19:45
csu0801
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2016-4-9
收藏
得分:0 
回复 4楼 lanke711
您好。
可是n初始值是0,j初始值是1,j=6时,n=5,这时候n%5==0,但是j<=5为假啊,循环体不是不执行吗????
2016-05-07 19:46
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
j=1时,n=0.你还没抓住重点:0%5是等于0的。

未佩好剑,转身便已是江湖
2016-05-07 20:07
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
收藏
得分:0 
下次是n=5,依次类推

未佩好剑,转身便已是江湖
2016-05-07 20:12
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
循环过程中n一开始被初始化为0,之后n执行n++。当j=6的时候,j循环停止,此时n的数值是5,因为此时的j为假,所以j停止,但是n还是5,这点是没变的。
当第二次执行j循环的时候,因为n为5,所以先输出换行,然后执行printf。
第二次j循环结束时,n的值为10,第三次是n=15,最后一次n=20,因为最后一次j循环停止,所以当n=20的时候没有输出换行。
2016-05-08 00:10
快速回复:新手,关于for循环的理解
数据加载中...
 
   



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

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