下面的C程序哪儿错了????

来源:百度知道 编辑:UC知道 时间:2024/06/16 01:35:29
#include<stdio.h>
void main()
{
void sort(int a[],int n,int i);
int a[10],i=0;
printf("enter the array\n");
for(i;i<10;i++)
scanf("%d",&a[i]);
i=0;
sort(a,10,i);
printf("the sorted array:\n");
for (i=0;i<10;i++)
printf("%5d",a[i]);
getch();
}
void sort(int a[],int n,int i)
{
int j,t;
for(j=i+1;j<n;j++)
if(a[j]<a[i])
t=a[i];a[i]=a[j];a[j]=t;
if (n-i>=2)
sort(a,n,i++);
}

排序还递归,终于见识了。

你的程序错了两个地方,都是在sort函数里面,修改后调试正确的程序如下:

#include<stdio.h>
void main()
{
void sort(int a[],int n,int i);
int a[10],i=0;
printf("enter the array\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
i=0;
sort(a,10,i);
printf("the sorted array:\n");
for (i=0;i<10;i++)
printf("%5d",a[i]);
getch();
}
void sort(int a[],int n,int i)
{
int j,t;
for(j=i+1;j<n;j++)
if(a[j]<a[i]){t=a[i];a[i]=a[j];a[j]=t;}
if (n-i>=2)sort(a,n,i+1);
}

运行一次的效果:
enter the array
1 2 3 4 5 6 9 8 7 10
the sorted array:
1 2 3 4 5 6 7 8 9 10