编写程序对数组a[5]中元素排序(用指针)(不能使用全局变量),尽量简单易懂的方法)

编写程序对数组a[5]中元素排序(用指针)(不能使用全局变量),尽量简单易懂的方法)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 5

void swap(int *a, int *b)
{
    int t = *a;
    *a = *b;
    *b = t;
}

void sort(int *a, int n)
{
    for (int i = 0; i < n - 1; i++)
        for (int j = 0; j < n - i - 1; j++)
            if (a[j] > a[j + 1])
                swap(&a[j], &a[j + 1]);
}

void print(int *a, int n)
{
    for (int i = 0; i < n; i++)
        printf("%2d ", a[i]);
    printf("\n");
}

int main()
{
    int a[N];
    srand(time(NULL));
    for (int i = 0; i < N; i++)
        a[i] = rand() % 100;
    printf("before: ");
    print(a, N);
    sort(a, N);
    printf("after : ");
    print(a, N);
    return 0;
}

代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n=5;
    int a[n];
    for(int i=0;i<n;i++)
        cin>>a[i];
    sort(a,a+5);
    for(int i=0;i<n;i++)
        cout<<a[i]<<" ";
    return 0;
}

希望对题主有帮助!

排序的算法有好多种,建议去学一下,这样比较好,只用一种是绝对不行的