这个直接选择排序哪里错了

来源:百度知道 编辑:UC知道 时间:2024/09/25 04:38:54
main()
{
int a[5];
int i,j,k,t;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
{
k=i;
for(j=i+1;j<5;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{
t=a[k];
a[k]=a[i];
a[i]=k;
}
}
for(i=0;i<5;i++)
printf("%d ",a[i]);
}

交换那,a[i]=t;

C++不是很懂

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a[5];
int i,j,k,t;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
{
k=i;
for(j=i+1;j<5;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{
t=a[k];
a[k]=a[i];
a[i]=t;//<-你的程序这里错了
}
}
for(i=0;i<5;i++)
printf("%d ",a[i]);
return 0;
}

#include<stdio.h>
main()
{
int a[5];
int i,j,k;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i]>a[j])
{
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=0;i<5;i++)
printf("%d ",a[i]);
}

这样不可以么,弄那么复杂干嘛,尽量简化

别忘了加 #include<stdio.h>