Part1-循环语句相关练习

本文探讨了如何用循环语句实现Fibonacci数列的前40项,嵌套循环展示九九乘法表,以及一系列编程练习,包括百钱买鸡问题、阶梯形状输出、钻石布局等,还涉及随机输入处理、字符转换、质数判断和圆面积计算。
摘要由CSDN通过智能技术生成

4、*写出Fibonacci数列的前40项(不用数组解决该问题)

//求斐波那契数列的前40项
//0 1 1 2 3 5 8 13 21 
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int a=0;
	int b=1;
	int c;

	printf("第1项:1\n");
	for(int i=2;i<=40;i++)
	{
		c = a + b;
		a = b;
		b = c;
		
		printf("第%d项:%d\n",i,c);
	}
	return 0;
}

老师标准代码:

void func4()//fibonacci
{
	long long int i,f1 = 1,f2 = 1;

	for(i = 1 ; i <= 20; i++)
	{
		printf("%10lld%10lld",f1,f2);
		if(i % 2 == 0)
			printf("\n");
		f1 += f2;
		f2 += f1;
	}
}

5、*嵌套循环引入:九九乘法表的输出

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int i;
	int j;
	printf("九九乘法表\n");
	for(i=1;i<=9;i++)
	{
		for(j=1;j<=i;j++)
		{
			int sum = j * i;
			printf("%d*%d=%d\t",j,i,sum);
		}
			printf("\n");
	}
	exit(0);
}

老师的代码:

void func5()
{
	int i,j;

	for(i = 1; i <= 9 ; i++)
	{
		for(j = 1 ; j <= i ; j++)
			printf("%2d*%-2d=%-3d",i,j,i * j);
		printf("\n");
//			printf((i==j) ? "%4d\n" : "%4d", i*j);
	}
}

6、*百钱买百鸡

//100块钱买一百只鸡 最大值问题,只要公鸡x<=20;y<=33
//条件:鸡的数量sum<=100;money<=100;
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int x,y,z;
	for(x=0;x<100;x++)
	{
		for(y=0;y<100;y++)
		{
			for(z=0;z<100;z++)
			{
				if( 5*x+3*y+z/3 ==100 && x+y+z==100 && z%3==0)
				{
				  printf("公鸡=%d 母鸡=%d 小鸡=%d\n",x,y,z);
				}
			}
		}
	}
}

老师的代码:

void func6()
{
	int x,y,z;

	for(x = 0 ; x < 20; x++)
	{
		for(y = 0 ; y < 33; y++)
	    {
			z = 100-x-y;
			if(z % 3 == 0 && 5*x + 3*y + z/3 == 100)
				printf("%d %d %d\n",x,y,z);
		}
	}
}

8、输出阶梯状ABCD

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int ch;  //A
	int sh;
	for(ch=65;ch<=70;ch++)
	{
	    for(sh=ch;sh<=70;sh++)
   		{
        	printf("%c",sh);
    	}   
		printf("\n");

	}
}

9、输出阶梯状_PEDCB

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int ch;
	int sh;
	int i;
	for(ch=70;ch>=65;ch--)
	{
		for(sh=70;sh>=ch;sh--)
		{
			printf("%c",sh);
		}
		printf("\n");
		for(i=70;i>=ch;i--)
		{	
			printf("_");
		}
	}
	exit(0);
}

老师的代码:

void func9()
{
	char ch = 'F';
	int i,j;

	for(i = 0 ; i < LINE; i++)
	{
		for(j = 0; j <= i-1; j++)
			putchar('_');

		for(j = 0,ch = 'F' ; j <= i; j++,ch--)
			putchar(ch);
		putchar('\n');
	}
}

10、输出钻石型

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int i,j;
	int line = 7;  //定义六行
    int l;
    int k;
    int space; //定义空行的数量   (line-1)/2
 	for(l=1;l<=4;l++)
    {
        for(i=1;i<=(line-1)/2;i++)
        {
            printf("_");
        }
        for(k=1;k<=2*(line-1);k++)
        {
            printf("*");
        }
        for(j=1;j<=(line-1)/2;j++)
        {
            printf("_\n");
        }  
    }

}

11、从终端随机输入N个数,求和

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int sum=0;
	int fig;
	int i=1;
	printf("End when you input a 0\n");
	while(1)
	{
		printf("Input %d figure\n",i);
		i++;

		if( scanf("%d",&fig) !=i);
			return 1;

		sum = sum + fig;
		if(fig == 0)
			break;
		
	}
	printf("%d\n",sum);
}

12、从终端实现循环输入

每次输入时随机输入数字,输出如下功能:

#define AA  64 

int main()
{
	int num ; //要输入的数字
    int ch;
    int sh;
	scanf("%d",&num);
	
    ch = AA +num;
    if(num == 3)
    {
        oh = 67;
    }
    
	for(ch;ch>=65;ch--)
    {
		for(sh=oh;sh>=ch;sh--)
		{
			printf("%c",sh);
		}
		printf("\n");
    }
}

13、实现大小写字符的转换:

//实现大小写字符的转换
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int ch;
	int ret;
	printf("Input a letter\n");

	ch = getchar();
	
	if(ch<=90 && ch>=65)
	{
		ret = ch + 32;
		printf("%c->%c\n",ch,ret);
	}
	else if(ch<=122 && ch>=97)
	{
		ret = ch -32;
		printf("%c-%c\n",ch,ret);
	}
}

14、*是否是质数

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int pri,n,i; //
    printf("wc -l 计算有多少个\n");
    for(pri=30000000;pri<=30000200;pri++)
    {
	int a=0;
        for(i=2;i<=pri/2;i++)
        {
            if(pri%i == 0)
            {   
                a++;
            }

        }
	if(a==0)
	{            	
	printf("%d is prime \n",pri);
	}
    }
    exit(0);

}
//wc -l 计算有多少个

老师的

 #include <stdio.h>
 #include <stdlib.h>
 #define MAX 100
 #define MIN 0
 
 int main()
 {
     int max=MIN,min=MAX,score;
 
     while(scanf("%d",&score) == 1 && score != -1)
     {
         if(score > MAX || score < MIN)
         {
             printf("Please again input\n");
             continue;
         }
 
         min = score < min ? score : min;
         max = score > max ? score : max;
     }
         printf("min = %d\n",min);
         printf("max = %d\n",max);
     exit(0);
 
 }

15、输入圆的面积,大于100停止

#include <stdio.h>
#include <stdlib.h>

#define PI 3.14159

int main()
{
	int r;  //圆的面积
	int i=1;
	float area;

	while(1)
	{
		printf("Input %d circle\n ",i);
		i++;
		scanf("%d",&r);

		area= PI*r*r; //公式  
		printf("This circle area = %lf\n",area);

		if(area>100)
			break;
	}
	exit(0);
}

16、输入十个整数计算平均值以及整数的个数

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int num;        //输入的数字
	int num_zheng=0;  //输入数字是正数的个数
	int num_sum;    //输入数字是正数的总和
	float num_aver;   //输入数字的平均值
	int i;

	for(i=1;i<=10;i++)
	{
		printf("Input %d number\n",i);
		scanf("%d",&num);

		if(num>0)
		{
			num_zheng++;
			num_sum += num;
		}
	}
	num_aver = num_sum/num_zheng; //计算平均值

	printf("num_zheng = %d\n",num_zheng);
	printf("num_aver = %.2f\n",num_aver);
	exit(0);
}

17、判断最大值问题

 #include <stdio.h>
 #include <stdlib.h>
 
 int main()
 {
     int grade;
     int min=100;
     int max=0;
     int i=0;
     while(1)
     {
 
 
         printf("Input %d grade\n",i);
         scanf("%d",&grade);
 
         if( grade>100 || grade < 0)
         {
             printf("error\n");
             break;
         }
         if(grade>max && grade!=0)   //判断是否为最小的
         {
             max = grade;
         }
 
         if(grade<min && grade!=0)   //判断是否是最大的
         {
             min = grade;
         }
         i++;
         if(grade==0)
             break;
     }
 
     printf("max = %d\n",max);
     printf("min = %d\n",min);
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值