精华内容
下载资源
问答
  • 虽说是多层,事实上 for 循环嵌套的层数也不能太多。通常为两个 for 循环的嵌套,超过两个的极少使用。 与单个 for 循环相比,多个 for 循环的嵌套在逻辑上更复杂一点,但并不难懂。 直接给大家写一个程序: #...

    虽说是多层,事实上 for 循环嵌套的层数也不能太多。通常为两个 for 循环的嵌套,超过两个的极少使用。

    与单个 for 循环相比,多个 for 循环的嵌套在逻辑上更复杂一点,但并不难懂。

    直接给大家写一个程序:

    #include <stdio.h>
    
    int main(void)
    
    {
    
        int i, j;
    
        for (i=0; i<4; ++i)
    
        {
    
            printf("问世间情是何物, 直教生死相许\n");
    
            for (j=0; j<3; ++j)
    
            {
    
                printf("两情若是久长时, 又岂在朝朝暮暮\n");
    
            }
    
        }
    
        return 0;
    
    }

    输出结果是:

    问世间情是何物, 直教生死相许

    两情若是久长时, 又岂在朝朝暮暮

    两情若是久长时, 又岂在朝朝暮暮

    两情若是久长时, 又岂在朝朝暮暮

    问世间情是何物, 直教生死相许

    两情若是久长时, 又岂在朝朝暮暮

    两情若是久长时, 又岂在朝朝暮暮

    两情若是久长时, 又岂在朝朝暮暮

    问世间情是何物, 直教生死相许

    两情若是久长时, 又岂在朝朝暮暮

    两情若是久长时, 又岂在朝朝暮暮

    两情若是久长时, 又岂在朝朝暮暮

    问世间情是何物, 直教生死相许

    两情若是久长时, 又岂在朝朝暮暮

    两情若是久长时, 又岂在朝朝暮暮

    两情若是久长时, 又岂在朝朝暮暮

    =============

    其实,多层 for 循环嵌套的执行过程与单个 for 循环的执行过程是一模一样的。多层 for 循环的嵌套只不过是将单个 for 循环大括号中的“语句”换成了 for 循环而已。

    下面看看上面程序中两个 for 循环嵌套是怎么执行的。

            1) 首先求解表达式 1,即给变量 i 赋初值,i=0;表达式 1 只执行这一次,下面都不会再执行了。

            2) 然后求解表达式 2,即 0<4 成立,则执行 for 循环中的内嵌语句:

    printf("问世间情是何物, 直教生死相许\n");
    
    for (j=0; j<3; ++j)
    
    {
    
        printf("两情若是久长时, 又岂在朝朝暮暮\n");
    
    }

    ====================

    首先 “printf("问世间情是何物,直教生死相许\n")”,然后执行内部 for 循环,对这个 for 循环再次应用“单个 for 循环”的执行过程:

            ★ 首先求解表达式 1,即给变量 j 赋初值,j=0。

            ★ 然后求解表达式 2,即 0<3 成立,则执行 for 循环中的内嵌语句,即 “printf("两情若是久长时,又岂在朝朝暮暮\n");”。

            ★ 然后执行表达式 3,变量 j 自加 1,即变量 j 由 0 变为 1。

            ★ 然后求解表达式 2,即 1<3 成立,则执行 for 循环中的内嵌语句,即“printf("两情若是久长时,又岂在朝朝暮暮\n");”。

            ★ 然后执行表达式 3,变量 j 自加 1,即变量 j 由 1 变为 2。

            ★ 然后求解表达式 2,即 2<3 成立,则执行 for 循环中的内嵌语句,即“printf("两情若是久长时,又岂在朝朝暮暮\n");”。

            ★ 然后执行表达式 3,变量 j 自加 1,即变量 j 由 2 变为 3。

            ★ 然后求解表达式 2,即 3<3 不成立,则内部的循环结束。对内部的 for 而言循环是结束了,但对外部的 for 而言,“for 循环的执行”过程才执行到表达式 3。

    3) 然后执行表达式 3,变量 i 自加 1,即变量 i 由 0 变为 1。

    4) 然后再求解表达式 2……

    ……

    就这样一直循环下去,直到外层循环结束,整个循环才结束。

    总之,不管是单个 for 循环还是多个 for 循环的嵌套,它们的执行过程是一样的。只不过如果是“多个 for 循环的嵌套”,则其执行过程也是嵌套的。

     

    for循环嵌套编程练习

    1、求出 1!+2!+3!+…+n!的和。

    对于这个程序前面用一个for编程也可以实现,但是逻辑性太强,现在再用for循环嵌套编程实现一下:

    #include <stdio.h>
    
    int main(void)
    
    {
    
        int n = 0;  //存储1!+2!+3!+…+n!中n的值
    
        int i = 0, j = 0;  //循环变量
    
        int m = 1;  //用于计算每个数的阶乘
    
        unsigned long sum=0;  /*阶乘的值往往很大, 定义成long型。虽然如此, 下面输入的n的值也不能太大, 不然long也放不下*/
    
        printf("请输入n的值:");
    
        scanf("%d", &n);
    
        for (i=1; i<=n; ++i)
    
        {
    
            for (j=1; j<=i; ++j)  //求一个数的阶乘
    
            {
    
                m = m*j;
    
            }
    
            sum = sum + m;  //求完之后就立即把它加到sum中
    
            m = 1;
    
        }
    
        printf ("sum = %ld\n", sum);
    
        return 0;
    
    }

    ==========

    输出结果是:

    请输入n的值:10

    sum = 4037913

    我们看到 n 的值仅为 10 结果就这么大,要再大点 long 类型肯定是存放不了的。此外,有人可能会纠结这样的问题,程序开头定义那么多变量,可是我写的时候怎么知道后面要用到哪些变量呢?

    其实,这些变量都不是刚开始写程序的时候就定义的,大多数情况下都是“若刚开始知道定义哪些变量那么就定义上,如果不知道那就不定义,等到后面需要用再回到前面进行定义”,这才是正常的逻辑。

     

    2、求出用 50元、20元 和 10元换算 100元有几种方式?

    思路:用穷举法, 将所有可能的情况都列出来, 用 for 循环可以实现穷举

    分析:100 元单用 50 换算, 最多需要两张;用 20 元换算, 最多需要五张;用 10 元换算最多需要十张

    #include <stdio.h>
    
    int main(void)
    
    {
    
        int w, e, s;  //w代表wushi;e代表ershi;s代表shi
    
        for (w=0; w<=2; ++w)
    
        {
    
            for (e=0; e<=5; ++e)
    
            {
    
                for (s=0; s<=10; ++s)
    
                {
    
                    if (100 == 50*w+20*e+10*s)
    
                    {
    
                        printf("%d  %d  %d\n", w, e, s);
    
                    }
    
                }
    
            }
    
        }
    
        return 0;
    
    }

    =========

    输出结果是:

    0  0  10

    0  1  8

    0  2  6

    0  3  4

    0  4  2

    0  5  0

    1  0  5

    1  1  3

    1  2  1

    2  0  0

     

    3、“百钱买百鸡”是中国古代一个著名的枚举法题目。

    所谓枚举就是将所有可能的情况全部列出来的意思。for 循环嵌套是实现枚举的一种手段,上面的换算也是一种枚举。假设公鸡 5 元一只,母鸡 3 元一只,小鸡 1 元 3 只,现在给你 100 元,要你买回 100 只鸡,求出公鸡、母鸡、小鸡分别为多少只。

    #include <stdio.h>
    
    int main(void)
    
    {
    
        int x, y, z;  //x、y、z 分别表示公鸡、母鸡、小鸡
    
        for (x=0; x<20; ++x)
    
        {
    
            for (y=0; y<33; ++y)
    
            {
    
                z = 100 - x - y;  //小鸡也可以用循环,但是能用二层循环解决的就不要用三层。
    
                if ((0 == z%3) && (100 == 5*x + 3*y + z/3))  //将 0==z%3 放前面更好,因为 && 是“短路与”,前面不成立后面就不会执行了,所以把计算量小的放前面。
    
                {
    
                    printf("x = %d, y = %d, z = %d\n", x, y, z);
    
                }
    
            }
    
        }
    
        return 0;
    
    }

    ==========

    输出结果是:

    x = 0, y = 25, z = 75

    x = 4, y = 18, z = 78

    x = 8, y = 11, z = 81

    x = 12, y = 4, z = 84

    ==================================

    for循环嵌套我们就学习到这里。

    如果你还想更深入的学习以及其他知识,不管你是转行也好,初学也罢,进阶也可~

    【值得关注】我的 编程学习交流俱乐部【点击进入】

    C语言入门资料:

    C语言必读书籍:

    展开全文
  • 本题要求实现函数输出n行数字金字塔...而我自己对于嵌套循环的问题老实云里雾里似懂非懂的,最开始写这道题竟然用了4个变量!!! 1. 的代码: #include <stdio.h> void pyramid(int n) { int i = 0; int j =

    本题要求实现函数输出n行数字金字塔。

    输入样例:

    5
    

    输出样例:

        1 
       2 2 
      3 3 3 
     4 4 4 4 
    5 5 5 5 5 
    

    先展示一下在VS上运行的结果:

    1.

    2.

    对比一下两者区别竟然只有一个字母只差!!!

    而我自己对于嵌套循环的问题老实云里雾里似懂非懂的,最开始写这道题竟然用了4个变量!!!

    1. 的代码:

    #include <stdio.h>
    
    void pyramid(int n)
    {
        int i = 0;
        int j = 0;
               for (i = 1;i <= n;i++)
            {
                for (j = n - 1 - i; j >= 0; j--)
                {
                    printf(" ");
                }
                for (j = 1; j <= i; j++)
                {
                    printf("%d ", i);//将i换成j就得到2的结果
                }
                printf("\n");
            }
    }
    
    int main()
    {
        int n;
    
        scanf_s("%d", &n);
        pyramid(n);
    
        return 0;
    }
    
    展开全文
  • c语言 for循环嵌套(含答案)第 33、34 课时 for 循环的嵌套实验题一:1、下面程序的功能是计算:至 50 中是 7 的倍数的数值之和,请选择填空。D#include main() int i,sum= 0; for(i=1;i Bmain() int a,b,c,i; a=c=0;...

    c语言 for循环的嵌套(含答案)

    第 33、34 课时 for 循环的嵌套实验题一:1、下面程序的功能是计算:至 50 中是 7 的倍数的数值之和,请选择填空。D#include main() int i,sum= 0; for(i=1;i Bmain() int a,b,c,i; a=c=0; for(i=0;imain() int i; #imain() int x,i; for(i=1;imain()int i,b,k=0;for(i=1;i=0) k+;printf(“%d,%d“,k,b);A)3,-1 B )8,-1 C)3,0 D)8,-2实验题二:编程题:1、编写程序,输入从公元 1000 年至 2000 年所有闰年的年号。每输出 3 个年号换一行。判断公元年是否为闰年的条件是:(1) 公元年数如能被 4 整除,而不能被 100 整除,则是闰年;(2) 公元年数能被 400 整除也是闰年。#include#include main()int i,j=0; for(i=2000;i=3000;i+)if(i%4=0j+;if(j%10=0)printf(“n“);2、使用嵌套的循环结构在屏幕上打印下面的图形。* * * * *方法一:方法一:main()main() intint i,j,k;i,j,k;for(i=0;i15;i+)for(i=0;i15;i+)printf(“*“);printf(“*“);printf(“n“);printf(“n“);for(j=0;j4;j+)for(j=0;j4;j+)printf(“*printf(“* *n“);*n“);for(k=0;k15;k+)for(k=0;k15;k+)printf(“*“);printf(“*“);getch();getch(); 方法二:方法二:main() int i,m,j;for(i=1;i=6;i+)if(i=1|i=6)for(j=1;j=16;j+) printf(“*“); printf(“n“);elsefor(m=1;m=16;m+) if(m=1) printf(“*“); if(m=16)printf(“*n“); elseprintf(“ “);

    展开全文
  • C语言while循环嵌套教程C语言while循环嵌套详解语法while (cond1){// do somethingwhile (cond2){// do somethingwhile (cond3){// do something}}}参数参数描述whilewhile 循环使用的关键字。condwhile 循环的条件...

    C语言while循环嵌套教程

    C语言while循环嵌套详解

    语法

    while (cond1)

    {

    // do something

    while (cond2)

    {

    // do something

    while (cond3)

    {

    // do something

    }

    }

    }

    参数

    参数

    描述

    while

    while 循环使用的关键字。

    cond

    while 循环的条件,如果为真,则一直执行 while 循环。

    说明

    这里,我们定义了三个 while 循环的嵌套,当然,我们可以嵌套任意多个的 while 循环,只要 cond1 为真,就一直执行 cond1 的代码块,只要 cond2 为 真,就一直执行 cond2 的代码块。

    只要 cond3 为真,就一直执行 cond3 的代码块。

    案例

    循环嵌套

    使用循环嵌套,打印计数器

    #include

    int main(){

    printf("嗨客网(www.haicoder.net)\n");

    // 使用循环嵌套,打印计数器

    int i = 0;

    while (i < 3)

    {

    printf("i = %d\n", i);

    int j = 0;

    while (j < 2)

    {

    printf("\tj = %d\n", j);

    j += 1;

    }

    i += 1;

    }

    printf("%s\n", "Over");

    return 0;

    }

    程序运行后,控制台输出如下:

    7fe4fafb7364e80a53debd7053b4ac13.png

    首先,我们定义了一个最外层的 while 循环嵌套,计数器

    在最外层循环的里面,同时又定义了一个内部循环,计数器变量 j 从 0 开始,结束条件是 j < 2,每次执行一次循环将 j 的值加 1,并打印当前 j 的值。

    循环嵌套打印数列

    使用循环嵌套,打印数列

    #include

    int main(){

    printf("嗨客网(www.haicoder.net)\n");

    // 使用循环嵌套,打印计数器

    int i = 0;

    while (i < 3)

    {

    printf("i = %d\n", i);

    int j = 0;

    while (j < i)

    {

    printf("\tj = %d\n", j);

    j += 1;

    }

    i += 1;

    }

    printf("%s\n", "Over");

    return 0;

    }

    程序运行后,控制台输出如下:

    caf3b3fdbfda626a08e2a99a1eba79f3.png

    首先,我们定义了一个最外层的 while 循环嵌套,计数器变量 i 从 1 开始,结束条件是 i < 3,每次执行一次循环将 i 的值加 1,并打印当前 i 的值。

    在最外层循环的里面,同时又定义了一个内部循环,计数器变量 j 从 0 开始,结束条件是 j < i,每次执行一次循环将 j 的值加 1,并打印当前 j 的值。

    C语言while循环嵌套总结

    C 语言的 while 循环也可以实现嵌套的效果,即 while 循环里面嵌套一个或多个 while 循环。

    展开全文
  • 语法在C语言嵌套for语句循环的语法如下:for(init;condition;increment){for(init;condition;increment){statement(s);}statement(s);}在C编程语言中嵌套while循环声明的语法如下:while(condition){while(c...
  • C语言循环嵌套的应用

    千次阅读 2020-04-04 13:34:49
    c语言循环嵌套的应用 循环嵌套可以使复杂的问题结构化,把一个功能的实现拆分成一个一个更小的功能,然后再实现,在此实现的过程中必须要注意结构上的逻辑性和该逻辑的正确性,要保证每一个小的功能能够完全正确,...
  • C语言中,if-else、while、do-while、for 都可以相互嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条...if-else 的嵌套在《C语言if else语句》一节中已经进行了讲解,本节主要介绍循环结构的嵌套。示例1:fo...
  • 循环的嵌套概念小星星九九...其中for循环嵌套是常见的类型,本次将使用for循环嵌套展示两个小栗子。 小星星 源代码 #include<stdio.h> int main() { int i = 1; int j = 1; for(i=1; i<6; i++) { for(j=
  • C语言程序设计循环嵌套C语言程序设计》 Lizq98@xzcat.edu.cn 任务:制作一个数字电子钟 一、任务分析 1、目标: 制作实际生活中常见的显示“时、分、秒”的 “数字电子钟”。如: 10:11:56 任务:制作一个数字...
  • c语言for循环;5.1;一、FOR循环的引入;二 for循环语句形式: C语言中的for循环语句比较复杂些,也比较灵活,功能较强. 虽然主要用于定数循环,但也可以用于不定数循环,它完全可以替代while循环.; for(表达式1 ; 表达式2 ...
  • 第33、34课时 for循环嵌套实验题一:1、下面有关for循环的正确描述是: DA) for循环只能用于循环次数已经确定的情况B) for循环是先执行循环体语句,后判断表达式C) 在for循环中,不能用break语句跳出循环体D) for循环...
  • 关于c语言for循环嵌套的理解

    千次阅读 2018-11-17 09:59:18
    for循环嵌套就是先执行一次外层循环,再执行一圈内层循环(把内层循环执行完),然后再接着执行外层循环.
  • for循环语句嵌套语句的理解问题,开始理解的情况是一级套着下一级的运算,嵌套几层的话,理解就像 上边左边的这张图这样,三个内容出现了一个时间上相撞的问题,对于条件与条件在固定的时间有冲突的想法,就像一堵墙...
  • C语言for循环嵌套是什么运行规则? 最开始进入的是第一层for循环,在进入第二层for循环,一直到最后一层for循环执行完,再返回上一层for循环一次,进入下一层循环,一直到所有循环结束。(从内到外) ​​​​ ...
  • 马上就要考专升本了,可是关于for语句的循环还是不是很清晰,for(式1;式2;式3) 语句;是先执行式1然后式2,然后无论真假都执行语句么?再返回式3。另求一套短时间突击c语言的应试方法。谢大神了。
  • c语言常见循环嵌套程序(初级)

    千次阅读 多人点赞 2017-11-19 22:43:41
    for(i=2;i&lt;m;i++){if(m%i==0)break;}if(i==m)printf("它是素数\n");elseprintf("它不是素数\n");return 0;}二,正三角形 “*”的输出(此处举例前十行的表示程序)#include &...
  • C语言FOR循环说课稿.docC 语言 FOR 循环说课稿 各位评委老师上午好,我今天说课的内容是“FOR 循环” (板书) ,下面我将从教材的 地位及作用、学生学情、教学目标、教学重难点、教法、学法、教学过程、教学效果的...
  • * Version 1.0 * * * Version 1.0 * 进一步学习描述算法的方法流程图 掌握for循环的应用 掌握循环嵌套的使用方法及作用 * C语言中的三种循环方式 第一种while循环 第二种do-while循环 第三种for循环 * 用C语言模拟如...
  • 语法在C语言嵌套for语句循环的语法如下:for(init;condition;increment){for(init;condition;increment){statement(s);}statement(s);}在C编程语言中嵌套while循环声明的语法如下:while(condition){while(c...
  • 2013-04-01我想问一下图中C语言的两个分支语句有什么区别,好像一样,可是书中把一个分类为if的嵌套,一个分为else if语句!为什么不一样两个语句,else-if语句:意思是有多个条件语句,根据不同的条件语句得到的...
  • C语言循环嵌套结构教学设计探究摘 要:C程序循环嵌套结构设计是C程序循环结构教学一章的重点与难点内容,是后续数据结构课程算法实现中使用频率最多的语句,是进行复杂程序设计的基础。该文将针对初学者实际情况,...
  • C语言for循环

    千次阅读 多人点赞 2020-04-16 11:04:54
    1、for循环介绍 for循环的一般形式为: for (语句1;表达式;语句2) { 语句块 } 1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1。 2)接着判断表达式的条件,如果条件成立,就执行一次...
  • C语言循环嵌套结构教学的设计探究C语言循环嵌套结构教学的设计探究摘 要:C程序循环嵌套结构设计是C程序循环结构教学一章的重点与难点内容,是后续数据结构课程算法实现中使用频率最多的语句,是进行复杂程序设计的...
  • C语言循环嵌套结构教学设计探究摘 要:C程序循环嵌套结构设计是C程序循环结构教学一章的重点与难点内容,是后续数据结构课程算法实现中使用频率最多的语句,是进行复杂程序设计的基础。该文将针对初学者实际情况,...
  • C语言中,if-else、while、do-while、for 都可以相互嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条...if-else 的嵌套在《C语言if else语句》一节中已经进行了讲解,本节主要介绍循环结构的嵌套。示例1:fo...
  • C语言 循环嵌套

    千次阅读 2019-02-05 10:24:02
    循环嵌套的概念,对所有高级语言都是一样的。 (2)for语句和while语句允许嵌套,do-while语句也不例外。 [案例] 打印一个循环矩阵。 main() { int i=0,j=0; int count=0; for(i=1;i&lt;=10;i++) { j=i; count=0...
  • C语言循环嵌套

    2021-07-05 10:32:59
    C语言中,if-else、while、do-while、for 都可以相互嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,467
精华内容 12,586
关键字:

c语言for循环嵌套

c语言 订阅