本文目录一览:
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; i10; i++ )
{
printf("%d ", i );
}
while()循环用法:
循环控制变量初始化
while(e)
{
while_statements ; //包括循环控制变量 变化
}
//说明:
//e 循环控制条件,e为真则进入循环区,否则,结束循环 执行完while_statements ;后转到这里继续判断
例:
int i;
i=0;
while( i10 )
{
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 ( i10 );
到这里,一定能得到一个大于10的i. 一般我们在要求输入一个数据必须符合规定时,这样写代码。
C语言循环结构有哪几种
常见就三种:for循环,while循环,do…while循环
当然,也可以用goto做伪循环
还有用函数实现循环:
单一函数调用自己实现的循环叫做:递归函数,
两个或者多个函数首尾互相调用可以实现循环算法。
c语言如何跳出多层循环
1、break语句退出循环时,它将退出离它最近的那层循环,无法退出多个循环。比如下面的代码,定义一个两维数组,不希望输出第2行。
#includestdio.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;
}
2、要退出多重循环,可以使用goto语句 。
#include stdio.h
int main()
{
for (; ; ) {
while (1)
{
goto end;
}
}
end:
printf("跳出轮回!\n");
return 0;
}
c语言中的多重循环是怎么运行的
C语言的多层循环是从最内的那个循环开始,最内的循环完成循环一次,表示它的外一层循环只步进了一次,依次类推,直到最外的那一层循环步进完成,整个多层循环就结束了。你可以参考一个二层循环的代码的实际运行来理解这个问题,用二层循环代码来理解就简单多了。