for循环的两种嵌套与区别

 一:内外循环独立进行

#include<bits/stdc++.h>
int main(){
	int i,j;
	for(i=0;i<5;i++){//外层循环 共循环5次 
		for(j=0;j<5;j++) //内层循环 每次输出五个* 
		 printf("* ");
		 if(j%5==0){
		 	printf("\n");//输出5个换行 
		 }
		 
	}
}

       这是输出结果

     

 

这种循环内外互不干涉,每一次内循环都输出5个

二:内部循环依赖于外部循环

 

#include<bits/stdc++.h>
int main(){
	int i,j;
	for(i=0;i<1;i++){//外层循环 共循环5次 
		for(j=0;j<i;j++) //内层循环 每次输出i个* 
		 printf("* ");
		 printf("\n");
	}
}

这时输出结果

  

 第一种相当于内部循环进行5次,外部循环也进行5次,相当于外部循环把内部循环的结果打印了5次,外部每循环一次,内部都打印5个*

而第二种为什么不一样那,内部循环收到外部循环的控制,

内部每次第一次当i=0,即循环条件0<0不成立,内部不循环无输出,只打印空行,

第二次当i=1,循环条件j<1,内部循环一次打印*,接着打印空行。

第三次当i=2,循环条件j<2,内部循环两次次打印*,接着打印空行。

关于内循环的练习可以做一下杨辉三角问题

题目描述

按要求输入如下格式的杨辉三角

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

最多输出10层

输入

输入只包含一个正整数n,表示将要输出的杨辉三角的层数。

输出

对应于该输入,请输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开

这里先给出代码

#include<bits/stdc++.h>
int main(){
	int s;
	scanf("%d",&s);
    int a[s][s];//定义一个二维数组, 
	for(int x=0;x<s;x++){
		for(int y=0;y<s;y++){
			if(y==0||x==y){//可以看出当二维数组a[i][0]和a[i][i]都是1 
				a[x][y]=1;
			}else{
				a[x][y]=a[x-1][y-1]+a[x-1][y];//根据规律看出 
			}
		}//这个循环是就是嵌套循环第一种 
	}
	for(int x=0;x<s;x++)
	{
		for(int y=0;y<=x;y++)
		{
			printf("%d ",a[x][y]);// 
		}
		printf("\n");
	}	//嵌套循环第二种 
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值