编写程序对数组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;
}
希望对题主有帮助!
排序的算法有好多种,建议去学一下,这样比较好,只用一种是绝对不行的