蓝桥杯 排序 C++算法训练 HERODING的蓝桥杯之路

资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
  编写一个程序,输入3个整数,然后程序将对这三个整数按照从大到小进行排列。
  输入格式:输入只有一行,即三个整数,中间用空格隔开。
  输出格式:输出只有一行,即排序后的结果。
  输入输出样例
样例输入
9 2 30
样例输出
30 9 2

解题思路:
这又是一道送分题,但是解题的思路可以有多种,这里我就只介绍两种,一种是冒泡排序,一种是使用sort函数进行排序。所谓杀鸡焉用牛刀,使用冒泡排序有点笨重了,不清楚冒泡排序的朋友们,在这里我给大家简单介绍下,就是像水泡一样,每次循环都把最大的数顶上去,这个最大的数是指除了之前已经顶上去的最大的数之外的最大的数。代码如下:

冒泡排序:

#include<bits/stdc++.h>
 
using namespace std;
 
int main() {
	int a[3];
	int i, j;
	for(i = 0; i < 3; i ++)
	cin >> a[i];
	for(i = 0; i < 2; i ++){
		for (j = 0; j < 2 - i; j ++){
			if (a[j] < a[j + 1]){
				int temp = a[j];
				a[j] = a[j + 1];
				a[j + 1] = temp;
			}
		}
	} 
	for (i = 0; i < 3; i ++){
		cout << a[i] << " ";
	}
	return 0;
}

sort函数排序

#include<bits/stdc++.h>
 
using namespace std;
 
int main() {
	int a[3];
	int i, j;
	for(i = 0; i < 3; i ++)
	cin >> a[i];
	sort(a,a + 3);
	for (i = 2; i >= 0; i --){
		cout << a[i] << " ";
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/HERODING23/article/details/106206017