【C语言】题目32→随机输入N个数字,数字按照从大到小排列

116 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,点击查看活动详情

🚀write in front🚀

🔎大家好,我是泽奀,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
💬总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🖊

前言

遇到这种题目冒泡排序是一种不错的选择,快来和泽奀一起学习冒泡排序吧。

题目描述

输入N个数字,要求按照输入的时候逆序的把这N个数字给打印出来,逆序输出。就是按照相反的顺序打印这十个数字。

题目分析

输入描述:一行,输入N个参数(注:N由用户输入决定)

输出描述:一行,输出的数字从大到小进行排列。

比较相邻的元素。如果第一个比第二个大,就交换他们两个。 每趟从第一对相邻元素开始,对每一对相邻元素作同样的工作,直到最后一对。 针对所有的元素重复以上的步骤,除了已排序过的元素(每趟排序后的最后一个元素),直到没有任何一对数字需要比较。用冒泡排序就可以非常完美的解决这道题目哟(@^0^)

题目代码

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
	int arr[100] = { 0 };
	int i = 0;
	int j = 0;
	int k = 0;
	int N = 0;
	scanf("%d", &N);
	puts("请输入数字:");
	for (i = 0; i < N; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (i = 0; i < N; i++)
	{
		for (j = 0; j < N - i - 1; j++)
		{
			if (arr[j] < arr[j + 1])
			{
				int temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
			}
		}
	}
	for (i = 0; i < N; i++)
	{
		printf("%d ", arr[i]);
	}
	return 0;
}

最后

从小到大也是非常容易的,我们只需要把上述程序的这个部分的修改下即可。

if (arr[j] > arr[j + 1])