c语言4层循环,C语言二层循环

发布时间:2023-01-03

本文目录一览:

  1. C语言:要求使用四重循环解决以下问题:
  2. C语言4种循环语句用法?
  3. C语言循环结构有哪几种
  4. c语言如何跳出多层循环
  5. c语言中的多重循环是怎么运行的

C语言:要求使用四重循环解决以下问题:

#include stdio.h
const int M = 4, N = 4;
const int S = 2, T = 2;
int findSubMatrix(int aim[][N], int m, int n, int model[][T], int s, int t) {
    int i, j, u, v, flag;
    if(m < s || n < t) return 0;
    for(i = 0; i <= m - s; ++i) {
        for(j = 0; j <= n - t; ++j) {
            flag = 1;
            for(u = 0; u < s && flag; ++u) {
                for(v = 0; v < t && flag; ++v) {
                    flag = aim[u + i][v + j] == model[u][v];
                }
            }
            if(flag) {
                printf("左上角:(%d,%d),右下角:(%d,%d)\n", i, j, i + u - 1, j + v - 1);
                return 1;
            }
        }
    }
    return 0;
}
int main() {
    int a[M][N] = {6,8,9,3,7,4,3,6,5,2,1,7,1,3,6,8};
    int b[S][T] = {2,1,3,6};
    int i,j;
    printf("a[]:\n");
    for(i = 0; i < M; ++i) {
        for(j = 0; j < N; ++j)
            printf("%3d",a[i][j]);
        printf("\n");
    }
    printf("\n");
    printf("b[]:\n");
    for(i = 0; i < S; ++i) {
        for(j = 0; j < T; ++j)
            printf("%3d",b[i][j]);
        printf("\n");
    }
    printf("\n");
    if(findSubMatrix(a,M,N,b,S,T) == 0) printf("没有\n");
    return 0;
}

C语言4种循环语句用法?

C语言循环语句用法有三种主要形式:

  • for()循环
  • while()循环
  • do...while()循环

for()循环用法:

for( e1 ; e2 ; e3 ) // 注意三个区域间用分号来分隔,而不是逗号
{
    for_statements ; // 多条语句用{}括起来,单条语句可以不用,建议也使用
}

说明:

  • e1:变量初始化区,只执行一次
  • e2:循环控制区,每次都要先检查e2表达式的结果是否为真,为真则进入循环区,否则结束循环
  • e3:循环变量变化区,每次执行完for_statements后转到这里,执行e3,然后转到e2 示例:
int i;
for( i=0; i<10; i++ )
{
    printf("%d ", i );
}

while()循环用法:

循环控制变量初始化
while(e)
{
    while_statements ; // 包括循环控制变量变化
}

说明:

  • e:循环控制条件,e为真则进入循环区,否则结束循环。执行完while_statements后转到这里继续判断 示例:
int i;
i=0;
while( i<10 )
{
    printf("%d ", i );
    i++; // 循环控制变量变化
}

do...while()循环用法:

do {
    do_while_statements ; // 包括循环控制变量变化
} while(e); // 注意尾部有分号

说明:

  • while()不同的是,这里可以没有循环变量的初始化,先进行循环语句的操作,然后,再判断是否继续进行,所以,这种循环,至少要执行一次do_while_statements;而前两种,有可能一次都不执行循环语句。 示例:
int i;
do {
    printf("input number " );
    scanf("%d", &i ); // 循环控制变量变化
    printf("%d\n", i );
} while ( i<10 );

到这里,一定能得到一个大于10的i。一般我们在要求输入一个数据必须符合规定时,这样写代码。

C语言循环结构有哪几种

常见就三种:

  • for循环
  • while循环
  • do...while循环 当然,也可以用goto做伪循环。 还有用函数实现循环:
  • 单一函数调用自己实现的循环叫做:递归函数
  • 两个或者多个函数首尾互相调用可以实现循环算法

c语言如何跳出多层循环

  1. break语句退出循环时,它将退出离它最近的那层循环,无法退出多个循环。比如下面的代码,定义一个二维数组,不希望输出第2行。
#include stdio.h
int main()
{
    int a[3][3] = { {1,2,3}, // 第一行
                    {4,5,6}, // 第二行
                    {7,8,9}  // 第三行
                  };
    for (int i=0; i!=3; ++i) {
        for (int j=0; j!=3; ++j)
        {
            if (a[i][j] == 4) break; // 进入第二行时break跳出,只跳出离它最近的for循环
            printf("%d\n", a[i][j]);
        }
    }
    return 0;
}
  1. 要退出多重循环,可以使用goto语句。
#include stdio.h
int main()
{
    for (; ; ) {
        while (1)
        {
            goto end;
        }
    }
end:
    printf("跳出轮回!\n");
    return 0;
}

c语言中的多重循环是怎么运行的

C语言的多层循环是从最内的那个循环开始,最内的循环完成循环一次,表示它的外一层循环只步进了一次,依次类推,直到最外的那一层循环步进完成,整个多层循环就结束了。你可以参考一个二层循环的代码的实际运行来理解这个问题,用二层循环代码来理解就简单多了。