C语言流程控制-------程序练习

目录

1、使用 break 和 continue 分别显示 4 之后函数就不再打印 i。(i 的变化范围是 0~10)

2、求 100 以内自然数中最大能被 17 整除的数

3、已知 a,b,c 都是 1 位整数,求当三位数 abc+cba 的值为 1333 时 a,b,c 的值

4、输入年份,判断是否为闰年

5、计算并输出 200—400 之间不能被 3 整除的整数的和

6、编程计算 1! +2! +3! + …… +10!的值。

7、编程计算 1*2*3+3*4*5+......+99*100*101 的值

8、输出所有 200-400 以内能被 3 整除且个位数字为 7 的整数

 9、打印所有水仙花数。所谓水仙花是指一个三位数,其各位数字的立方和等于该数。

10、输出 100 到 200 以内的所有素数(只能被本身或 1 整除的数)

11、求 1-1/2+1/3-1/4+……+1/99-1/100 的值。

12、用1元人民币兑换5分(20), 2 分(50), 1 分(100)的硬币共50枚,每种硬币至少1枚

13、已知银行定期存款利率为 r=2.25%,输入存款本金 x, 存款年数 n,输出本利之和 r=x(1+r) (1+r) .....(1+r),共 n 个(1+r)

14、输入正整数,将正整数分解质因数。质因数要满足两个条件:①是这个数的因数;②是质数(素数)

15、输出 10000 以内的所有完全数, 各个小于它的约数(真约数, 列出某数的约数, 掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数。

16、写一段程序,输入 x,输出 y 值。

17、求 Sn=a+aa+aaa+……+aa..aa(n 个 a)之值,其中 a 是一个数字,n 表示 a 的位数。

18、有一个分数序列: 2/1,3/2,5/3,8/5,13/8,21/13,... 求出这个数列的前 20 项之和。

19、小猴摘了很多桃子,第一天吃了一半又多吃一个,第二天又吃掉一半再多吃一个,如此下去,到第 真十天恰好还剩一个桃子。问第一天小猴摘了多少桃子?

20、两个乒乓球队进行比赛,各出 3 人。甲对为 A、B、C 3 人,乙队为 X、Y、Z 3 人。已抽签决定比赛 名单。有人向队员打听比赛的名单,A 说他不和 X 比,C 说他不和 X、Z 比,编程找出 3 对赛手的 名单。


1、使用 break 和 continue 分别显示 4 之后函数就不再打印 i。(i 的变化范围是 0~10)

//使用 break 和 continue 来分别显示一个 4 之后函数就不再打印 i。(i 的变化范围是 0~10)
#include<stdio.h>
int main()
{
	int i;
	for(i=0;i<=10;i++)
	{
		if(i>=5)
		{
			break;
		}
		printf("i=%d\n",i);
	}
	return 0;
}
//使用 break 和 continue 来分别显示一个 4 之后函数就不再打印 i。(i 的变化范围是 0~10)
#include<stdio.h>
int main()
{
	int i;
	for(i=0;i<11;i++)
	{
		if(i>4)
		{
			continue;
		}
		printf("i=%d\n",i);
	}
	return 0;
}

2、求 100 以内自然数中最大能被 17 整除的数

//求 100 之内自然数中最大的能被 17 整除的数
#include<stdio.h>
int main()
{
	int i;
	for(i=100;i>0;i--)
	{
		if(i%17==0)
		{
		printf("i=%d\n",i);
		break;
		}
	}
	return 0;
}

3、已知 a,b,c 都是 1 位整数,求当三位数 abc+cba 的值为 1333 时 a,b,c 的值

//已知 a,b,c 都是 1 位整数,求当三位数 abc+cba 的值为 1333 时 a,b,c 的值
#include<stdio.h>
int main()
{
	int a,b,c;
	for(a=1;a<10;a++)
	{
		for(b=0;b<10;b++)
		{
			for(c=1;c<10;c++)
			{
				if(a*100+b*10+c+c*100+b*10+a==1333)
				{
					printf("a=%d,b=%d,c=%d\n",a,b,c);
				}
			}
		}
	}
	return 0;
	
}

4、输入年份,判断是否为闰年

//输入年份,判断是否闰年
#include<stdio.h>
int main()
{
	printf("请输入年份:\n");
	int year;
	scanf("%d",&year);
	if(year%4==0 && year%100!=0||year%400==0)
	{
		printf("闰年!\n");
	}
	else
	{
		printf("不是闰年!\n");
	}
	return 0;
}

5、计算并输出 200—400 之间不能被 3 整除的整数的和

//计算并输出 200—400 之间不能被 3 整除的整数的和
#include<stdio.h>
int main()
{
	int i,sum=0;
	for(i=200;i<=400;i++)
	{
		if(i%3!=0)
		{
			sum+=i;
		}
	}
	printf("sum=%d\n",sum);
	return 0;
}

6、编程计算 1! +2! +3! + …… +10!的值。

//编程计算 1! +2! +3! + …… +10!的值
#include<stdio.h>
int main()
{
	int i,num=1,sum=0;
	for(i=1;i<=10;i++)
	{
		num*=i;
		sum+=num;
	}
	printf("sum=%d\n",sum);
	return 0;
}

7、编程计算 1*2*3+3*4*5+......+99*100*101 的值

//编程计算 1*2*3+3*4*5+......+99*100*101 的值
#include<stdio.h>
int main()
{
	int i,sum=0;
	for(i=1;i<100;i+=2)
	{
		sum+=i*(i+1)*(i+2);
	}
	printf("sum=%d\n",sum);
	return 0;
}

8、输出所有 200-400 以内能被 3 整除且个位数字为 7 的整数

//输出所有 200-400 以内能被 3 整除且个位数字为 7 的整数
#include<stdio.h>
int main()
{
	int i;
	for(i=200;i<=400;i++)
	{
		if(i%3==0 && i%10==7)
		{
			printf("i=%d\n",i);
		}
	}
	return 0;
}

 9、打印所有水仙花数。所谓水仙花是指一个三位数,其各位数字的立方和等于该数。

例  如:153=1*1*1+5*5*5+3*3*3=1+125+27

//打印所有水仙花数。所谓水仙花是指一个三位数,其各位数字的立方和等于该数。
#include<stdio.h>
int main()
{
	int i,j,k;
	for(i=1;i<10;i++)
	{
		for(j=0;j<10;j++)
		{
			for(k=0;k<10;k++)
			{
				if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
				{
					printf("%d\n",i*100+j*10+k);
				}
			}
		}
	}
	return 0;
}

10、输出 100 到 200 以内的所有素数(只能被本身或 1 整除的数)

//输出 100 到 200 以内的所有素数(只能被本身或则 1 整除的数)
#include<stdio.h>
int main()
{
	int i,j;
	for(i=100;i<=200;i++)
	{
		for(j=2;j<i;j++)
		{
			if(i%j==0)
			break;
		}
		if(i==j)
		{
			printf("素数=%d\n",i);
		}
	}
	return 0;
}

11、求 1-1/2+1/3-1/4+……+1/99-1/100 的值。

//求 1-1/2+1/3-1/4+……+1/99-1/100 的值
#include<stdio.h>
int main()
{
	int i;
	float sum1=0,sum2=0;
	for(i=1;i<=100;i++)
	{
		if(i%2!=0)
		{
			sum1+=1.0/i;
		}
		else if(i%2==0)
		{
			sum2+=1.0/i;
		}
	}
	printf("sum=%f\n",sum1-sum2);
	return 0;
}

12、用1元人民币兑换5分(20), 2 分(50), 1 分(100)的硬币共50枚,每种硬币至少1枚

问共有多少种兑换方案,输出每一种方案三种硬币的数量。

//用 1 元人民币兑换 5 分(20), 2 分(50), 1 分(100)的硬币共 50 枚, 每种硬币至少 1 枚,问共有多少种兑换方案, 输出每一种方案三种硬币的数量
#include<stdio.h>
int main()
{
	int a,b,c;
	for(a=1;a<=18;a++)
	{
		for(b=1;b<=48;b++)
		{
			for(c=1;c<=98;c++)
			{
				if(a*5+b*2+c*1==100 && a+b+c==50)
				{
				printf("a=%d,b=%d,c=%d\n",a,b,c);
				}
			}
		}
	}
	return 0;
}

13、已知银行定期存款利率为 r=2.25%,输入存款本金 x, 存款年数 n,输出本利之和 r=x(1+r) (1+r) .....(1+r),共 n 个(1+r)

//已知银行定期存款利率为 r=2.25%,输入存款本金 x, 存款年数 n,输出本利之和 r=x(1+r) (1+r) .....(1+r),共 n 个(1+r)
#include<stdio.h>
int main()
{
	int n,i;
	float x;
	printf("请输入存款金额及年数:\n");
	scanf("%f%d",&x,&n);
	for(i=1;i<=n;i++)
	{
		x=x*(1+0.00225);
	}
	printf("本利之和为%f元\n",x);
	return 0;
}

14、输入正整数,将正整数分解质因数。质因数要满足两个条件:①是这个数的因数;②是质数(素数)

如: 6=2*3 12=2*2*3

//输入正整数,将正整数分解质因数。质因数要满足两个条件:1)是这个数的因数;2)是质数(素数)如: 6=2*3 12=2*2*3
#include<stdio.h>
int main()
{
	int num,i;
	printf("请输入一个正整数:\n");
	scanf("%d",&num);
	printf("%d= ",num);//输入的初始值num
	for(i=2;i<num;i++)
	{
		if(num%i == 0)
		{
			printf("%d*",i);
			num /= i;
			i = 1;
		}
	}
	printf("%d\n",num);	
	return 0;
}
//1不是质数,质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数

15、输出 10000 以内的所有完全数, 各个小于它的约数(真约数, 列出某数的约数, 掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数。

例如:第一个完全数是 6,它有约数 1、 2、 3、 6,除去它本身 6 外,其余 3 个数相加,1+2+3=6。第二个完全数是 28,它有约数 1、 2、 4、 7、 14、 28,除去它本身 28 外,其余 5 个数相加, 1+2+4+7+14=28。

/*
输出 10000 以内的所有完全数, 各个小于它的约数(真约数, 列出某数的约数,去掉该数本身,
剩下的就是它的真约数)的和等于它本身的自然数叫做完全数。
例如:第一个完全数是 6,它有约数 1、 2、 3、 6,除去它本身 6 外,其余3 个数相加,1+2+3=6。
第二个完全数是 28,它有约数 1、 2、 4、 7、 14、28,除去它本身 28 外,其余 5 个数相加,1+2+4+7+14=28。
*/
#include<stdio.h>
int main()
{
	int a,i;
	scanf("%d",&a);
	printf("%d = ",a);
	for(i=2;i<a;i++)
	{
loop:
		if((a%i == 0) && (a != i))
		{
			printf("%d*",i);
			a /= i;
			goto loop;
		}	
	}
	printf("%d\n",a);
	return 0;
}

16、写一段程序,输入 x,输出 y 值。

                                      x        x<1

                      y=           2x-1    1≤x<10

                                    3x-11    x≥10

/*
写一段程序,输入 x,输出 y 值。
            x     x<1
        y= 2x-1   1≤x<10
           3x-11  x≥10
*/
#include<stdio.h>
int main()
{
	float x,y;
	printf("please\n");
	scanf("%f",&x);
	if(x<1)
	{
		y=x;
	}
	else if(x>=1 && x<10)
	{
		y=2*x-1;
	}
	else
	{
		y=3*x-11;
	}
	printf("y=%f\n",y);
	return 0;
}

17、求 Sn=a+aa+aaa+……+aa..aa(n 个 a)之值,其中 a 是一个数字,n 表示 a 的位数。

例     如:2+22+222+2222+22222(此时 n=5),n 由键盘输入。

/*
求 Sn=a+aa+aaa+……+aa..aa(n 个 a)之值,其中 a 是一个数字,n 表示 a 的位数。
例如:2+22+222+2222+22222(此时 n=5),n 由键盘输入
*/
#include<stdio.h>
int main()
{
	int i,a,n,num=0,sum=0;
	printf("请输入一个数字及其位数:\n");
	scanf("%d%d",&a,&n);
	for(i=1;i<=n;i++)
	{
		if(i==1)
		{
			num=a;
		}
		else
		{
			num=num*10+a;
		}
		sum+=num;
		printf("num=%d\n",num);
	}
	printf("sum=%d\n",sum);
	return 0;
}

18、有一个分数序列: 2/1,3/2,5/3,8/5,13/8,21/13,... 求出这个数列的前 20 项之和。

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

19、小猴摘了很多桃子,第一天吃了一半又多吃一个,第二天又吃掉一半再多吃一个,如此下去,到第 真十天恰好还剩一个桃子。问第一天小猴摘了多少桃子?

//小猴摘了很多桃子,第一天吃了一半又多吃一个,第二天又吃掉一半再多吃一个,如此下去,到第真十天恰好还剩一个桃子。问第一天小猴摘了多少桃子?
#include<stdio.h>
int main()
{
	int x=1,i;
	for(i=10;i>0;i--)
	{
		x=(x+1)*2;
	}
	printf("%d\n",x);
	return 0;
}

20、两个乒乓球队进行比赛,各出 3 人。甲对为 A、B、C 3 人,乙队为 X、Y、Z 3 人。已抽签决定比赛 名单。有人向队员打听比赛的名单,A 说他不和 X 比,C 说他不和 X、Z 比,编程找出 3 对赛手的 名单。

//两个乒乓球队进行比赛,各出 3 人。甲对为 A、B、C 3 人,乙队为 X、Y、Z 3 人。已抽签决定比赛名单。有人向队员打听比赛的名单,A 说他不和 X 比,C 说他不和 X、Z 比,编程找出 3 对赛手的名单
#include<stdio.h>
int main()
{
	char A,B,C;
	for(A='X';A<='Z';A++)
	{
		for(B='X';B<='Z';B++)
		{
			for(C='X';C<='Z';C++)
			{
				if(A!='X'&& C!='X'&& C!='Z'&& A!=B&& A!=C&& B!=C)
				{
					printf("A-%c B-%c C-%c\n",A,B,C);
				}
			}
		}
	}
	return 0;
}

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值