选择法排序

本题要求将给定的n个整数从大到小排序后输出。

输入格式:

输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

输出格式:

在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。

输入样例:

复制代码
4
5 1 7 6

输出样例:

复制代码
7 6 5 1

代码:

cpp 复制代码
#include<stdio.h>

int main()
{
	int n;
	scanf("%d", &n);
	int a[12];
	for (int i = 0; i <n; i++)
	{
		scanf("%d", &a[i]);
	}
	int b = 0;
	int t = 0;
	for (int i = 0; i < n-1; i++)//总共需排序n-1次
	{
		b = i;
		for (int j = i+1; j < n; j++)//j=i+1 从剩下的数中找到最大值
		{
			if (a[j] > a[b])
			{
				//直接交换下标,相当于利用循环交换元素,不用直接交换元素如b = a[j];
				b = j;
			}
		}
		t = a[i];
		a[i] = a[b];
		a[b] = t;//找到最大值后交换两值
	}
	for (int i = 0; i < n; i++)
	{
		if (i < n - 1)//最后一个不带空格
			printf("%d ", a[i]);
		else
			printf("%d", a[i]);
	}
	return 0;
}
相关推荐
AI thought3 小时前
【转】C语言中 -> 是什么意思?
c语言·位移运算符·右移赋值·无符号整数·算术右移
qeen876 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
wuminyu8 小时前
Java锁机制之park和unpark源码剖析
java·linux·c语言·jvm·c++
asdfg12589639 小时前
C 语言中产生伪随机数的标准做法
c语言·开发语言
玖玥拾9 小时前
C/C++ 基础笔记(十一)类的进阶
c语言·c++·设计模式·
Soari10 小时前
llama.cpp更新(b9553):LLM inference in C/C++,本地和云端实现高性能大模型推理
c语言·c++·llama
2601_9611940210 小时前
考研资料电子版|去哪找|网盘
java·c语言·c++·python·考研·php
十月的皮皮11 小时前
C语言学习笔记202606008- 三角形判断(3种方法)
c语言·笔记·学习
c++之路13 小时前
C/C++ 全链路编译工具汇总
c语言·开发语言·c++
凡人叶枫14 小时前
Effective C++ 条款02:宁可以编译器替换预处理器
java·linux·c语言·开发语言·c++