for循环里面嵌套if_C语言——循环嵌套

461ba5b6ef608e94356fb01e1f82506f.png

在一个循环结构中,又包含另一个完整的循环结构称为循环嵌套。内嵌循环的循环体中还可以出现新的循环,这就构成多重循环

C语言提供的for语句、while语句和do...while语句,不但可以嵌套循环语句自身,而且还可以相互嵌套

循环嵌套的执行:外层循环体每执行一次,内层循环都要整体循环一次(从初值开始,一直执行到不满足循环条件为止)

三种循环语句for、while、do. . .while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。

举例1:输出1000到9999有哪些玫瑰花数?

例如:1634 = 1*1*1*1 +6*6*6*6 +3*3*3*3 +4*4*4*4

#include <stdio.h>
#include <math.h>
int main()
{
    int i,t;
	float sum;
	
	for(i=1000;i<10000;i++)
	{
		t = i;sum=0;
		while(t)
		{
		  sum+=pow(t%10,4);	
		  t/=10;
		}
		
		if(sum==i)
		{
			printf("%d is rosenumern",i);
		}
	}
	
	return 0;
	
}

举例2:在屏幕上输出以下图案

*

***

*****

*******

*********

***********

*************

***********

*********

*******

*****

***

*

#include <stdio.h>
int main()
{
 int n,i,j,k,m;
 printf("输入行数:");scanf("%d",&n);
 
 for(i=0,j=n-1;i<n;i++,j--)
 {
  if(i<j)
  for(k=0;k<2*i+1;k++)
    printf("%c",'*');
  else 
   for(m=0;m<2*j+1;m++)
     printf("%c",'*');
   
  printf("n");
 }
}

举例3:在屏幕上输出以下图案

630b92358be6dccd241da38c807d9265.png
#include <stdio.h>

int main()
{
	int  i,j,k;
	char c ='A';
	
    for(i=0;i<7;i++)
    {
             if(i<4)
    	   	   {
    	   	   	  for(j=0;j<4-i-1;j++)
    	                      putchar(' ');
      	                  for(k=0;k<2*i+1;k++)
    	                      putchar(c+i);
		      	    
    	                       printf("n");
		     } 
				
		else
		   {
			  for(j=0;j<=i-4;j++)
		                putchar(' ');
      	                   for(k=0;k<2*(7-i)-1;k++)
    	                        putchar(c+i);	
    	                 
    	                     printf("n");
		   }
	}
	

	
	return 0;
    
 } 

举例4:在屏幕上输出以下图案

d90ac3bce7f923db25fe53357a29446f.png
#include <stdio.h>

int main()
{
	int i,j,k;
	int n; 
	printf("input n:");
	scanf("%d",&n);
	
	for(i=1;i<n;i++)
	{
	  for(j=1;j<=n-i;j++)
	  	printf("%2c",' ');
	  		 
	  for(k=1;k<=2*i-1;k++)	
	      {
	      	 if(k==1 || k == 2*i-1)
	            {  	printf("%2c",'*');continue;  } 
	        
	         	printf("%2c",' ');
		  } 
		  printf("n");
	}
	
	for(i=1;i<=2*n-1;i++)
	   printf("%2c",'*');
	   
	   return 0;
}
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值