数组中的排序问题

先输入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 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX2 小时前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
爱跳舞的烤冷面3 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号3 小时前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽3 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
马拉AI3 小时前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
地平线开发者5 小时前
征程6工具链模型X86推理方式说明
算法
地平线开发者5 小时前
【征程6】校准量化中HistogramObserver解析
算法
OuO-26 小时前
笔试强训 Day 34:ISBN 号码、kotori 和迷宫、矩阵最长递增路径
java·算法·矩阵
程序喵大人6 小时前
【C++进阶】STL算法与函数对象 - 04 find、count和any_of把查询写成意图
开发语言·c++·算法