数组中的排序问题

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

结果如下

相关推荐
大侠归来1 小时前
C 语言 | 在函数中操作数组
c语言·c++·算法
怕浪猫6 小时前
GEO 优化到底是什么?AI时代内容创作者必须懂的新技能
算法·面试·github
朝朝辞暮i7 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
Evand J8 小时前
【MATLAB例程】三维RRT+APF避障路径规划与到达角(AOA)定位算法|三维路径优化与定位仿真例程
算法·matlab·路径规划·代码·定位·rrt·aoa
weixin_307779139 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构
朝朝辞暮i9 小时前
C++ 第 27 课:智能指针 shared_ptr
开发语言·c++·算法
朝朝辞暮i10 小时前
C++ 第 29 课:回调函数 Callback
开发语言·c++·算法
Godspeed Zhao10 小时前
现代智能雷达技术14——算法(0)
线性代数·算法·雷达
可乐ea10 小时前
Agent 模型分级升级路由:用置信度阈值把贵模型省下来
人工智能·算法·机器学习·结构化输出·置信度路由·模型升级路由·大模型成本优化
Navigator_Z10 小时前
LeetCode //C - 1278. Palindrome Partitioning III
c语言·算法·leetcode