定义函数void sort(int a[ ],int n),用选择法对数组a中的元素升序排列。

定义函数void sort(int a[ ],int n),用选择法对数组a中的元素升序排列。自定义main函数,在其中输入一个正整数n,然后输入n个整数存入数组中,并调用sort函数。

请高人看看,我错在哪了?谢谢!!!

#include<stdio.h>
int main(void)
{
void sort(int a[],int n);
int a[10];
int i,n;
printf("Enter n\n");
scanf("%d",&n);
printf("Enter %d numbers\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
void sort(int a[],int n){
int i,k,c,j;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++)
if(a[k]<a[j])
k=j;
if(k!=i){
c=a[k];
a[k]=a[j];
a[j]=c;}

}
}

第1个回答  推荐于2016-06-08
#include<stdio.h>
int main(void)
{
void sort(int a[],int n);
int a[10];
int i,n;
printf("Enter n\n");
scanf("%d",&n);
printf("Enter %d numbers\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(a,n);
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
void sort(int a[],int n){
int i,k,c,j;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++)
if(a[k]<a[j])
k=j;
{
c=a[k];//这里是a[k]和a[i]交换
a[k]=a[i];
a[i]=c;}

}
}本回答被提问者采纳