利用指针完成成绩的排序
#include<stdio.h>
#define M 50
void In(int a[],int n);/成绩输入/
void Put(int a[],int n);/成绩输出/
int S(int a,int b);/成绩升序/
int J(int a,int b);/成绩降序/
void G(int a[],int n,int(*c)(int a,int b));
void Swap(int *x,int *y);
int main()
{
int i,n,a[M],k;
printf(“Input n:”);
scanf("%d",&n);
getchar();
In(a,n);
printf(“Input k:”);
scanf("%d",&k);
if(k==1)
{
G(a,n,J);
printf(“s:”);
}
else
{
G(a,n,S);
printf(“j:”);
}
Put(a,n);
return 0;
}
void G(int a[],int n,int(*c)(int a,int b))
{
int i,j;
for (i=0;i<n-1;i++)
{
for (j=i+1;j<n;j++)
{
if((*c)(a[j],a[i]))
{
Swap(&a[j],&a[i]);
}
}
}