编写程序:输入三个整数,然后按由大到小的顺序输出这三个数。

方法一(直接交换)

cpp 复制代码
#include<stdio.h>
int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c); 
	//可以这么写 想办法把a换成最大的数 ,之后是b c
	int temp;
	if(a<b)
	{
		temp=a;
		a=b;
		b=temp;
	 } 
	 if(a<c)
	 {
	 	temp=a;
		a=c;
		c=temp;
	 }
	 if(b<c)
	 {
	 	temp=b;
		b=c;
		c=temp;
	 }
	 printf("排序后的三个数为:%d %d %d\n",a,b,c);
	return 0;
}

方法二(冒泡排序思想)

cpp 复制代码
#include<stdio.h>
int main()
{
	int a[3];
	for(int i=0;i<3;i++)
	{
		scanf("%d",&a[i]);
	}
	for(int i=0;i<3-1;i++)
	{
		for(int j=0;j<3-i-1;j++)
		{
			if(a[j]<a[j+1])
			{
				int temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
	 printf("排序后的三个数为:");
	 for(int i=0;i<3;i++) printf("%d ",a[i]);
	return 0;
}

延伸到对n个数排序

这里还是使用冒泡排序的思想

cpp 复制代码
#include<stdio.h>
int main()
{
	int n,a[1005];
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	for(int i=0;i<n-1;i++)
	{
		for(int j=0;j<n-i-1;j++)
		{
			if(a[j]<a[j+1])
			{
				int temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}
	 printf("排序后的%d个数为:",n);
	 for(int i=0;i<n;i++) printf("%d ",a[i]);
	return 0;
}
相关推荐
土司大王1 天前
LeetCode hot100——两两交换链表中的节点
算法·leetcode·职场和发展
1 天前
数据结构第一课:复杂度解析
数据结构
hh9501 天前
Agent Plan x DeepSeek Harness — Token 预算管理与成本追踪体系技术
人工智能·学习·adg·火山引擎·adg成都社区
丰锋ff1 天前
基于 Qt 的智能门禁系统
qt·学习
小小帅呀1 天前
学习 VLA 第 2 天:深度学习基础
人工智能·深度学习·学习
具身AGI1 天前
人类第一视角数据走上评测台:物理AI 人类学习路线
学习
大熊背1 天前
树莓派IspPipeline LSC模块原理详解
算法·lsc·isppipeline·mesh lsc
dadaobusi1 天前
5G核心网概念复习
学习
zander2581 天前
LeetCode 300. 最长递增子序列
算法·leetcode·深度优先
程序员与背包客_CoderZ1 天前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb