一些题目的解法

输入任意三个数,按从大到小排列:

#define _CRT_SECURE_NO_WARNINGS 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)
	{
		int min1;
		min1 = a;
		a = b;
		b = min1;
	}
	if (a < c)
	{
		int min2;
		min2 = a;
		a = c;
		c = min2;
	}
	if (b < c)
	{
		int min3;
		min3 = b;
		b = c;
		c = min3;
	}

	//输出
	printf("%d %d %d\n", a, b, c);
	return 0;
}

 从大到小排列数字,打印结果如下:

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

int main()
{
	int i ;
	
	for (i = 1; i < 34; i++)
	{
		int a = 3 * i;
		i++;
		if (a < 100)
		{
			printf("%d ", a);
		}
	}
	return 0;

}

打印结果如图:

3、计算两个数的最大公约数

两个方案,第一:

//给定两个数,求两个数的最大公约数


int main()
{
	int m = 0;
	int n = 0;
	int max = 0;
	scanf("%d %d", &m, &n);
	if (m > n)
	{
		max = m;
	}
	else
	{
		max = n;
	}
	while (1)
	{
		if ((m % max == 0) && (n % max == 0))
		{
			printf("最大公约数是:%d",max);
			break;
		}
		max--;
	}
		return 0;
}

第二:辗转相除法:


int main()
{
	int m = 0;
	int n = 0;
	scanf("%d %d", &m, &n);
	int t = 0;

	while (t = m % n)//
	{
		//t = m % n;
		m = n;
		n = t;

	}
	printf("最大公约数是:%d", n);
	return 0;
}

这个辗转相除法要注意

        

 这里的是辗转相除法的精髓,得好好理解。

最小公倍数 =  m*n/最大公约数;

4.输出1000-2030的闰年

//4.打印1000  - 2000的闰年

int main()
{
	

	int y = 0;
	while (1)
	{
		//能被4整除,不能被100整除是闰年。
		//能被400整除是闰年;
		for (y = 1000; y <= 2030; y++)
		{
			if (y % 4 == 0)
			{
				if (y % 100 != 0)
				{
					printf(" %d ", y);
	
				}	
			}
			if (y % 400 == 0)
			{
				printf(" %d ", y);
			}
		}
		return 0;

	}

}

不能被100整除的才对,思路要清晰才能搞好代码,打印结果如下。

 当然 if((y%4==0)&&(y%100!=0))||(y%400==0))这个判断也行,而且更加简洁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值