分支、循环语句经典例题

一、写代码将三个整数数按从大到小输出

 方法1.

#include<stdio.h>
 int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d %d %d", &a, &b, &c);
	if (a > b && b > c)
		printf("%d %d %d", a, b, c);
	else if (a > c && c > b)
		printf("%d %d %d", a, c, b);
	else if (b > a && a > c)
		printf("%d %d %d", b, a, c);
	else if (b > c && c > a)
		printf("%d %d %d", b, c ,a);
	else if (c> a && a > b)
		printf("%d %d %d", c, a, b);
	else 
		printf("%d %d %d", c, b, a);
	return 0;
}

此代码构想出了三个整数大小排序的六种情况,运用if-else语句,解决大小排序。

二、写一个代码打印1-100之间所有3的倍数的数字

#include<stdio.h>
int main()
{
	int a = 0;
	for (a = 3; a < 100; a++)
	{
		if(a%3==0)
			printf("%d ", a);
	}
	
	return 0;
  •  本代码运用了 for 循环、if语句。

三、给定两个数,求这两个数的最大公约数

 

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d %d", &a, &b);
	if (a > b)
		c = b;
	else
		c = a;

	while (1)
	{
		if (a % c == 0 && b % c == 0)
		{
			printf("%d\n", c);
			break;
		}
			c--;
	}

	return 0;
}

  1. 首先需要运用if 语句找出两个数的最小值
  2. 运用while、if语句找出最大公约数;

三、打印1000年到2000年之间的闰年

 闰年条件:如果N能够被4整除,并且不能被100整除,则是闰年;或者:N能被400整除,也是闰年

#include<stdio.h>
int main()
{
	int a = 0;
	for (a = 1000; a <= 2000; a++)
	{
		if ((a % 4 == 0 && a % 100 !=0)|| a % 400==0)
		{
			printf("%d ", a);
		}
	}
	
	return 0;

}

&&表示并且,两者需都成.

|| 表示或者,两者有一方成立即可。

运行代码如下:

四、 写一个代码:打印100~200之间的素数

#include<stdio.h>
int main()
{
	int a = 0;
	int b = 0;
	int count = 0;
	for (a = 100; a <=200; a++)
	{
		for (b = 2; b <= a; b++)
		{
			if (a % b == 0)
			{
				break;
			}
		}
			if (a ==b)
			{
				count++;
				printf("%d ", a);
			}
		
	}
	printf("%d ", count);
	return 0;
}
  1.  素数:即质数,除了1和自己之外,再没有其他的约数,则该数据为素数.
  2. 代码中两个for循环的意思是;让a(100~200)中的每一个数与b(2~a)中的数相除:
  • 如果有可以被整除的数(a%b == 0)那么结束这次循环(break).
  • 如果都循环到了a=b的情况下了,还没有被整除,那么这个数‘a’及为素数。
  • 运行结果如下:

 

五、编写程序数一下 1到 100 的所有整数中出现多少个数字9

#include<stdio.h>
int main()
{
	int a = 0;
	int count = 0;
	for (a = 1; a <= 100; a++)
	{
		if (a % 10 == 9)
		{
			count++;
		}
		if (a / 10 == 9)
		{
			count++;
		}
	}
	printf("%d ", count);
	return 0;

}
  •  if (a % 10 == 9) 解决的是 9 19 29 ....
  • if (a / 10 == 9)解决的是 90 91 92 ...
  • 99两个条件都满足,一个数字count+2.

运行结果如下:

六、给定秒数 seconds ,把秒转化成小时、分钟和秒 

#include<stdio.h>
int main()
{
	int t = 0;
	int h = 0;
	int min = 0;
	int s = 0;
	scanf("%d", &t);
	h = t / 3600;
	min = t % 3600 / 60;
		s = t % 3600 % 30;
	printf("%d\n", h);
	printf("%d\n", min);
	printf("%d\n", s);
	return 0;

}

 输入3661s ,输出 1小时1分钟 1 秒。

 

 七、从键盘输入5个学生的成绩(整数),求他们的平均成绩(浮点数,保留一位小数)。

#include<stdio.h>
int main()
{
	int i = 0;
    int  s = 0;
	int input = 0;
	for (i = 1; i <= 5; i++)
	{
		scanf("%d", &input);
		s = (s+input);
	}
	printf("%.1f", s/5.0);
	return 0;
}

 

  •  for 循环加 scanf语句简便了输入代码。
  • printf("%.1f", s/5.0); 表示输入保留一位小数的float类型的数。

运行结果如下:

 八、反向输出一个四位数

 

#include<stdio.h>
int main()
{
	int a = 0;
	scanf("%d", &a);
	while (a)
	{
		printf("%d", a % 10);
		a = a / 10;

	}
	return 0;
}
  • 一个数先用10取余,首先得到的是一串书的最后一个数字;
  • 在除10,因为整形只能取整数,其会删除一串数字的最后一个数字;
  • 反复进行此操作即可得出这串数字的倒序数。

 运行代码如下:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值