C语言 for循环结构相关例题实现

1.下列程序的功能是求一组数(动态输入一组数据)的最大值和最小值,当输入为0时结束,程序不完整,请在划线处将程序补充完整。

   void main( )

   {    float x,amax,amin;

          scanf("%f",&x);

          amax=x;amin=x;

          while (x!=0)

           { if (x>amax)  _________;

              if (x<amin)  __________;

            ________________

       }

           printf("\namax=%f\namin=%f\n",amax,amin);

    }

#include<stdio.h>
int main()
{   
    float x,amax,amin;
    scanf("%f",&x);
    amax=x;
	amin=x;
    while(x!=0)
    {
	 if(x>amax)  amax=x;
     if(x<amin)  amin=x;
     scanf("%f",&x);
  	}
    printf("amax=%f\namin=%f\n",amax,amin);
    return 0;
} 

2.求1!+2!+3!+4!+…+20!

第一种:

#include<stdio.h>
int main()
{
	int n;
    long long sum=0,t=1;
    for(n=1;n<=20;n++)
    {
    	t*=n;
    	sum+=t;
	}
	printf("1!+2!+3!+4!+…+20!=%d",sum);
    return 0;
}

第二种:

#include<stdio.h>
long fac(int n)
{
	long long f;
	if(n<0) printf("error");
	else
	     if(n==0||n==1) f=1;
	     else f=fac(n-1)*n;
	return (f);
}
int main()
{
	int n;
	long long y,sum=0;
	for(n=1;n<=20;n++)
	{
		y=fac(n);
		sum+=y;
	}
	printf("1!+2!+3!+4!+…+20!=%d",sum);
	return 0; 
}

3.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

#include<stdio.h>
int main()
{
	int x,a,b,c;
	printf("输出所有的水仙花数:"); 
	for(x=100;x<=999;x++)
	{
		a=x/100;
		b=x%100/10;
		c=x%10;
		if(x==a*a*a+b*b*b+c*c*c) printf("%d ",x);
	}
	return 0;
}

4.2/1,3/2,5/3,8/5,13/8,21/13,…求这个数列的前20项之和。

#include<stdio.h>
int main()
{
	int n;
	float a=2,b=1,c=0,sum=0;
	for(n=1;n<=20;n++)
	{
		sum=sum+a/b;
		c=a;
		a=a+b;
		b=c;
	}
	printf("2/1,3/2,5/3,8/5,13/8,21/13,...这个数列的前20项之和:%f",sum);
	return 0;
}

5.输出以下图案:

       *

      ***

     *****

    *******

     *****

      ***

       *

#include<stdio.h>
int main()
{
	int i,j;
	for(i=1;i<=4;i++)
	{
		for(j=i;j<=3;j++)
		{
			printf(" ");
		}
		for(j=1;j<=2*i-1;j++)
		{
			printf("*");
		}
		printf("\n");
	}
	for(i=1;i<=3;i++)
	{
		for(j=1;j<=i;j++)
		{
			printf(" ");
		}
		for(j=1;j<=(7-2*i);j++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值