大家看下我这个选择排序错在哪?

来源:百度知道 编辑:UC知道 时间:2024/09/25 02:33:40
#include "stdio.h"
void main()
{
void sort(int array[]);
int i,a[5];
printf("enter 5 numbers:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("the sorted array is:\n");
sort(a);
}
void sort(int array[])
{ int t,j;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
{ if(a[j]<a[i])
i=j;
{ t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
错在哪呢?for(i=0;i<4;i++)吗?

#include "stdio.h"
void sort(int array[]); //这个函数原型要放外面
int main() //改为int main才符合标准
{

int i,a[5];
printf("enter 5 numbers:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("the sorted array is:\n");
sort(a);
for(i=0;i<5;i++) //你要输出才知道排的序对不对
printf("%d",a[i]);
return 0;//必须返回值
}
void sort(int array[])
{ int t,j,i;//加上i的声明
for(i=0;i<4;i++) //i没有定义
for(j=i+1;j<5;j++)
{ if(array[j]<array[i]) //数组a还没有定义呢.改为array
i=j;
if (i!=j)//加上这个句子.如果两个下标不相等,说明它们必须换位置了.
{ t=array[j];
array[j]=array[i];
array[i]=t;
}
}
}

帮你修改了一下,自己琢磨吧!
#include "stdio.h"
void main()
{
void sort(int a[]);
int i,a[5];
printf("enter 5 numbers:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf(&quo