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

方法一(直接交换)

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;
}
相关推荐
汀、人工智能13 分钟前
[特殊字符] 第27课:环形链表II
数据结构·算法·链表·数据库架构··环形链表ii
会编程的土豆13 分钟前
【数据结构与算法】二叉树大总结
数据结构·算法·leetcode
嵌入式小企鹅18 分钟前
阿里编程模型赶超、半导体涨价蔓延、RISC-V新品密集上线
人工智能·学习·ai·程序员·risc-v·芯片
沉鱼.4423 分钟前
第十届题目
算法
y = xⁿ25 分钟前
【LeetCode Hot100】动态规划:T70:爬楼梯 T118:杨辉三角形 T198:打家劫舍
算法·leetcode·动态规划
Liangwei Lin27 分钟前
洛谷 P1460 [USACO2.1] 健康的荷斯坦奶牛 Healthy Holsteins
数据结构·算法
William_wL_29 分钟前
【C++】list的实现
c++·list
汀、人工智能30 分钟前
02 - 变量与数据类型
数据结构·算法·链表·数据库架构··02 - 变量与数据类型
hello!树32 分钟前
函数极限的概念和性质
算法
艾莉丝努力练剑36 分钟前
【Linux系统:信号】线程安全不等于可重入:深度拆解变量作用域与原子操作
java·linux·运维·服务器·开发语言·c++·学习