各位大侠小弟是个C语言的初学者,最近对for 语句的嵌套产生了疑问:这是一个4*5的矩阵程序
#include<stdio.h>intmain(){inti,j,n=0;for(i=1;i<=4;i++)for(j=1;j<=5;j++,n++){if(n%5==...
#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");
printf("%d\t",i*j);
}
printf("\n");
system("pause");
return 0;
}//我就是想问一下程序中两个for 语句的作用是什么,谭浩强讲的太简单了,跪求高手!!!
这是WIN-TC的界面 展开
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");
printf("%d\t",i*j);
}
printf("\n");
system("pause");
return 0;
}//我就是想问一下程序中两个for 语句的作用是什么,谭浩强讲的太简单了,跪求高手!!!
这是WIN-TC的界面 展开
5个回答
展开全部
第一个for循环其实就是控制 矩阵的行
第二个for循环其实就是控制矩阵的列, 当外面的for循环 i是第一行的时候,输出5个元素,也就是 第一行的5个元素, 依次,是第二行的5个元素,第三行的5个元素,第四行的5个元素
第二个for循环其实就是控制矩阵的列, 当外面的for循环 i是第一行的时候,输出5个元素,也就是 第一行的5个元素, 依次,是第二行的5个元素,第三行的5个元素,第四行的5个元素
更多追问追答
追问
为什么第一个for语句为1的时候,第二个for就变为1,2,3,4,5呢?
追答
你看 当第一个for语句的i为1的时候 ,执行第二个for语句
for (j=1;j<=5;j++,n++) 这里面是j ,从1到5,依次输出5个数啊, 当j加到超过5的时候,它里面的条件才不成立,退出里面的for循环,再执行外面的for的循环。
展开全部
{
int i,j,n=0;
for (i=1;i<=4;i++)// 外围控制行,有四行
for (j=1;j<=5;j++,n++)//这个j控制列,每行五个数,n是计数器
{if (n%5==0) printf("\n");//每到五个就换行
printf("%d\t",i*j); //依次输出 行数 乘 列数
}
printf("\n");
system("pause");
return 0;
int i,j,n=0;
for (i=1;i<=4;i++)// 外围控制行,有四行
for (j=1;j<=5;j++,n++)//这个j控制列,每行五个数,n是计数器
{if (n%5==0) printf("\n");//每到五个就换行
printf("%d\t",i*j); //依次输出 行数 乘 列数
}
printf("\n");
system("pause");
return 0;
更多追问追答
追问
为什么第一个for语句为1的时候,第二个for就变为1,2,3,4,5呢?
追答
i
j 1 2 3 4 5
1 1 2 3 4 5
2
3
4
第一个for是进入第一行的,还可以再进入二三四行的,第二个for是进入行中的列的依次横向的 1 2 3 4 5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一个for是产生4行,第二个for是产生5列。
1 2 3 4 5 \n //i=1
1 2 3 4 5 \n //i=2
1 2 3 4 5 \n //i=3
1 2 3 4 5 \n //i=4
//从左到右j = 1 2 3 4 5
1 2 3 4 5 \n //i=1
1 2 3 4 5 \n //i=2
1 2 3 4 5 \n //i=3
1 2 3 4 5 \n //i=4
//从左到右j = 1 2 3 4 5
更多追问追答
追问
为什么第一个for语句为1的时候,第二个for就变为1,2,3,4,5呢?
追答
额。。。。。
C语言中;和}是表示一个语句结束,第一个for的意思是当i<4的时候执行i++及for括号的语句,上面的语句是这样的:
for (i=1;i<=4;i++)
{
for (j=1;j<=5;j++,n++)
{
if (n%5==0) printf("\n");
printf("%d\t",i*j);
}
}
当i=1时,就执行第一个for循环中的语句,就是:
for (j=1;j<=5;j++,n++)
{
if (n%5==0) printf("\n");
printf("%d\t",i*j);
}
同理,当j=1时,执行:
if (n%5==0) printf("\n");
printf("%d\t",i*j);
这两句,懂不?当j=5后,第二个for执行完了,接着执行i++,这时i=2,然后就按刚才的顺序执行到i=4,程序结束。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for语句的主要作用是循环 就你上面的是让语句i取一到四 j一到五 i++ j++ n++是执行完后自增一 多看看书吧 我也没学多久 好好学
追问
为什么第一个for语句为1的时候,第二个for就变为1,2,3,4,5呢?
追答
因为第二个for循环是包含在第一个for循环之中的啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你介绍个高手吧,编程教父,你百度搜编程教父,很有名的,估计你跟他学会好的多。百度自己搜吧,相当出名的人。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询