#include <stdio.h>
void main()
{
void average(int a[],int n);
int a[50];
int i,n;
printf("Enter n:");
scanf("%d",&n);
printf("Enter data:");
for(i=0;i<n;i++)
scanf("%d",a+i);
average(a,n);
for(i=0;i<n;i++)
printf("%d",*(a+i));
}
void average(int a[],int n)
{
int i,temp;
int *p;
for(i=0;i<n-1;i++)
for(p=a;p<a+n-i;p++)
if(*p>*(p+1))
{
temp=*p;
*p=*(p+1);
*(p+1)=temp;
}
}
你这个使用的是冒泡排序:
void average(int a[],int n){
int i,temp;
int *p;
for(i=0;i<n-1;i++)
for(p=a;p<a+n-i-1;p++)//因为下面使用了p+1,所以p的地址最大只能指向倒数第二个
if(*p>*(p+1))
{
temp=*p;
*p=*(p+1);
*(p+1)=temp;
}
}
温馨提示:答案为网友推荐,仅供参考