回复 5楼 丁松
请问为什么第一个交换被我换成min1=a[j]之后,再输入数据就会输出错误的数据出来呢
temp=array[i-1];
array[i-1]=min2;
min2=temp;
printf("%d",min2);
最后输出的min2=temp=array[i-1],也就是说这里输出的就是你输入的
交换应该在内循环内完成,改成我这样
#include <stdio.h>
#include <stdlib.h>
void sort(int array[],int n);
#define N 10
int main()
{
int i,a[N];
for(i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
sort(a,10);
return 0;
}
void sort(int array[],int n)
{
int i,j,min1;
for(i=0;i<n;i++)
{
min1=array[i];
for(j=i;j<n;j++)
{
if(min1>array[j])
min1=array[j],array[j]=array[i],array[i]=min1;
}
}
for(i=0;i<n;i++) printf("%d",array[i]);
printf("\n");
}
[此贴子已经被作者于2015-11-27 00:14编辑过]