数组中的排序问题

先输入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个数字

结果如下

相关推荐
计算机编程-吉哥42 分钟前
脑肿瘤MRI智能识别系统:基于深度学习的像素级脑肿瘤语义分割平台【计算机毕业设计选题推荐】
人工智能·python·深度学习·算法·毕业设计·课程设计·大数据毕业设计选题推荐
用户204937554951 小时前
端侧语音部署踩坑:模型能跑不等于终端真的能用
后端·算法
shehuiyuelaiyuehao1 小时前
算法39,位运算,消失的两个数字
java·数据结构·算法
ZiLing1 小时前
2026 ROS 2 Lyrical 踩坑实录(一):编译与依赖——rosdep、现代 CMake 与 CMake 4.x
算法
Murphy_lx2 小时前
1124. 表现良好的最长时间段
c++·算法
aramae2 小时前
模拟实现strstr函数(C语言)
c语言·开发语言·算法
liliangcsdn2 小时前
因子权重矩阵处理-滞回缓冲带+降频稳定化动态重选
开发语言·python·算法
敲代码的嘎仔2 小时前
自己设计了一个兑换码算法:自增ID + Base32转码 + 按位加权签名 + 异或混淆,面试被追问细节时终于不用慌了
java·数据库·mysql·算法·微服务·面试·职场和发展
云析赢指标公式网43 小时前
文华WH6布林轨道均线强弱共振指标公式
前端·算法
luj_17684 小时前
一线一区一变破解人盯人防守密码
开发语言·网络·c++·经验分享·算法