问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于c语言中的嵌套for循环

发布网友 发布时间:2022-04-20 16:39

我来回答

5个回答

热心网友 时间:2023-08-02 13:16

main()
{
<1> int i,j,k;
<2> printf("i j k \n");
<3> for(i=0;i<2;i++)
<4> for(j=0;j<2;j++)
<5> for(k=0;k<2;k++)
<6> printf("%d %d %d \n",i,j,k);
}

for循环的嵌套:

就上面的代码而言,通俗的讲,我们可以说<3>套<4>,<4>套<5>
但是实际上<3>这句只是for循环的头部,其主体是<4><5><6>这三句所组成的另一个for循环。

打个比方来讲,地球从外到内不是分好几层的?for循环就跟地球一样,这里的<3>就相当于地表,<4>是地幔,以此类推。

从执行顺序来讲,我们先不讲三层的,讲个两层的好了。
比如上面的<4><5><6>三句:
<4> for(j=0;j<2;j++)
<5> for(k=0;k<2;k++)
<6> printf("%d %d %d \n",i,j,k);
第<4>句:对于从0到2的每一个j(也就是0和1了),都要执行一次<5><6>构成的for循环。
而<5>呢?是对于从0到2的每一个k(同样也是0和1),都要执行一次<6>这个句子。
总的来讲,<6>这个句子在这里一共执行了2*2=4次,第一次执行的时候j=0,k=0,第二次的时候j=0,k=1,第三次的时候j=1,k=0,第四次的时候j=1,k=1。

另外,也有人问过关于嵌套for循环的问题,请参看这里的解答:

http://zhidao.baidu.com/question/41460492.html

热心网友 时间:2023-08-02 13:17

 
 i=2的情况
先执行第一个for循环
i=2<100成立
执行
第二个for循环
j=2<=(2/2)也就是
j=2<=1
不成立
执行第二个if语句
j=2>(2/2)
成立
执行printf语句,输出
2是质数
 
 
 
 
 
 
 i=5的情况
i=5<100成立
j=2<=(5/2) 
就是
j=2<=2成立
执行第一个if语句
if(!(5%2))=if(!1)=if(0)
也就是说结果为假,
不成立,不执行break语句
执行j++,那
j=j+1=2+1=3,所以
j=3
再执行
j<=(i/j)
3<=5/2
不成立,退出第二循环,执行第二个if语句
if(3>5/3)
成立,执行printf语句,输出5是质数
 
*注意:第一个for循环有两条语句
 
 
 
 
 
 第二个for循环只有一条语句

热心网友 时间:2023-08-02 13:17

循环的过程是先执行第一个大循环for(i=0;i<3;i++),此句中先给i赋值0,在判断条件i<3是否成立赋值后的i=0了,所以条件成立,成立则做下面一条语句,就是for(j=0;j<4;j++),同样这个循环还是先赋值j=0,在进行判断j<4是否成立,成立就再做下一句。
此时scanf语句后面已经没有语句了,所以程序就会跳上去到第二个循环中,即for(j=0;j<4;j++)这句话中,可能你会问为什么不是第一句
(因为在循环嵌套中只有循环体执行完成所以的任务后才执行下面的语句,就是for(j=0;j<4;j++)
要全部执行完毕才能执行后面的语句。即j<4条件为假时跳出)跳到for(j=0;j<4;j++)这个循环体以后。就会自动加一,就是执行j++(注:在这个for里面的j=0不再执行),这个赋值过程只在开始时执行。所以
j
这个循环要执行到条件不满足时停止,即最后j的值要>=4.。
这样
j
这个循环就结束了。结束后又跳到了第一句。因为第二个for是包含在第一个for
里的。只有第一个for
里包含的语句全部执行完后第一个for就再一次执行i++,i
变成了2,判断条件i<3成立,就再执行下一句,所以下面的for(j=0;j<4;j++)又要再一次执行。执行完后就在回到第一个for执行。
原理:
i=0,j
执行4次,给a[0][0],a[0][1],a[0][2],a[0][3]赋值
i=1,j
执行4次,给a[1][0],a[1][1],a[1][2],a[1][3]赋值
i=2,j
执行4次,给a[2][0],a[2][1],a[2][2],a[2][3]赋值
i=3跳出.
还有不懂再问

热心网友 时间:2023-08-02 13:18

相当于下面的
main()
{

int i,j,k;
printf("i j k \n");
for(i=0;i<2;i++)
{for(j=0;j<2;j++)
{for(k=0;k<2;k++)
printf("%d %d %d \n",i,j,k); //上面的一共执行2*2*2=8次
( 1. i=0,j=0,k=0
2. i=0,j=0,k=1
3. i=0,j=1,k=0
4. i=0,j=1,k=1
5. i=1,j=0,k=0
6. i=1,j=0,k=1
7. i=1,j=1,k=0
8. i=1,j=1,k=1 )
}
}
}
相信能够明白的

热心网友 时间:2023-08-02 13:19

把里面的for循环当成普通的程序段不就看懂了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
天将雄师观后感600字 为什么喝酒会降血糖 牛栏山 52度浓香型白酒-购买最佳价格 全兴大曲 52度浓香型白酒-购买最佳价格 笔记本电脑怎么接音箱电脑如何连接外置音箱 笔记本电脑有音箱插孔吗笔记本电脑如何连接喇叭 冰箱压缩机过热启动5秒就停了 周长相等的正方形和圆,其面积比是多少 周长相等的正方形和圆面积比是多少 周长相等的正方形与圆形,边长与半径的比是( ),面积之比是( )。 要有... for循环的嵌套 for循环如何嵌套 C语言for循环嵌套讲解 for循环怎样嵌套? c语言中for语句的嵌套怎样理解 for循环嵌套怎么理解? 游戏修改器下载后怎么使用? 微信公众号推送的消息中,有些可以用手滑动翻页,... 给男朋友看故意渣男的文章,比如一个男的给女朋友... 微信公众号,前端用什么UI框架 我目前负责微信公众号文章撰写,请问有哪些网站可... 谁有仿android微信公众号底部菜单的例子 给男朋友看说渣男的文章,比如一个男的给女朋友买... 微信公众平台的文字是几号字体 微信公众号发表文章模仿别的新闻网上的题材可以吗... 微信公众号文章怎么写阅读量更高? 微信公众号怎么排版 微信公众平台排版样式,微信公众平台怎么排版漂亮 编写了微信公众号文章模板上自带的内容算侵权吗 修改器要怎么用? 关于C语言for语句的循环嵌套 java中for嵌套for循环的详细讲解? 谁能给我详细讲讲for的嵌套循环 for循环当中的那个嵌套怎么用? for循环嵌套 for循环嵌套怎么理解 在VB中 for 循环嵌套语句的用法语解释(必须清楚!!) 两个for循环嵌套两个for循环嵌套 应该怎么理解 for的嵌套循环 关于for循环的嵌套 谷歌手机号码无法验证 linux下切换用户命令 linux如何切换到其他用户 linux系统中切换用户的命令 linux下切换用户命令? linux怎样切换到root用户 Linux下root用户切换到其他目录后无法执行任何命令... Linux普通用户没有权限使用命令怎么办 linux中我用root登陆,要注销换用户,怎么用不了lo... linux怎么切换用户登录