数组中的排序问题

先输入5个数字

c++ 复制代码
#include<stdio.h>
int main(){
    int arr[5];
    for(int i = 0;i < 5;i++){
	scanf("%d",&arr[i]);
	}
    }

打印输出

c++ 复制代码
for(int i = 0;i < 5;i++){
    printf("%d",arr[i]);
	}

排序:5,3,2,6,4

交换:交换数组中的前面两个数的位置

含义:把下标为0的元素,和下标为1的元素交换一下位置

代码如下:

c++ 复制代码
#include<stdio.h>
int main(){
    int arr[5];
    int temp = arr[0];
    arr[0] = arr[1];
    arr[1] = temp;
    printf("%d",arr[0]);
    printf("%d",arr[1]); 
    }

结果如下:

把下标为 0 的元素先存在另一个变量中,再令下标为0和下标为1的元素相同,再将下标为1的元素与之前存的变量相等,就可以把两个元素交换位置

排序:通过比较相邻元素的大小,并交换,把最大的值放在数组的最后面

c++ 复制代码
#include<stdio.h>
int main(){
    for(int i = 0; i < 4;i++){
		for(int j = 0; j < 4;j++ ){
			if(arr[j] > arr[j+1]){
				int temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
		}
	}
}
	for(int i = 0 ;i < 5;i++){
		printf("%d\n",arr[i]);
	}

}

结果如下:

将三者整合起来

c++ 复制代码
#include<stdio.h>
int main(){
    int arr[5];
    for(int i = 0 ; i < 5 ; i++){
        scanf("%d",&arr[i]);
    }
    printf("-------------\n");
    
    for(int i = 0;i < 4;i++){
        for(int j = 0;j < 4;j++){
            if(arr[j] > arr[j+1]){
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;  
            }
        }
    }
    
    for(int i = 0;i < 5;i++){
        printf("%d",arr[i]);
    }


}

任意输入5个数字

结果如下

相关推荐
XFF不秃头2 小时前
力扣刷题笔记-旋转图像
c++·笔记·算法·leetcode
王老师青少年编程2 小时前
csp信奥赛C++标准模板库STL案例应用3
c++·算法·stl·csp·信奥赛·lower_bound·标准模版库
有为少年3 小时前
Welford 算法 | 优雅地计算海量数据的均值与方差
人工智能·深度学习·神经网络·学习·算法·机器学习·均值算法
Ven%3 小时前
从单轮问答到连贯对话:RAG多轮对话技术详解
人工智能·python·深度学习·神经网络·算法
山楂树の3 小时前
爬楼梯(动态规划)
算法·动态规划
谈笑也风生3 小时前
经典算法题型之复数乘法(二)
开发语言·python·算法
智算菩萨3 小时前
强化学习从单代理到多代理系统的理论与算法架构综述
人工智能·算法·强化学习
lhn3 小时前
大模型强化学习总结
算法
Gigavision4 小时前
MMPD数据集 最新Mamba算法 源码+数据集 下载方式
算法