C语言中一维数组的简单排序

来源:百度知道 编辑:UC知道 时间:2024/06/18 18:12:54
#include <stdio.h>

void main()
{
int a[5],i,j,t,k,min;

printf("please input 5 num!\n");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
min=i;
for(j=i+1;j<6;j++)
{

if(a[min]>a[j])min=j;

t=a[i];
a[i]=a[min];
a[min]=t;
}

}
printf("%d ",a[min]);
}

我想得到的结果是我输入的最小值!
好像是逻辑出错了,请帮帮改改啊!
要是能用指针写一个的,那就更感谢了!

main()
{
int a[5],i,j,t,k,min;
printf("please input 5 num!\n");
scanf("%d",&a[0]);
min=a[0];

for(i=1;i<5;i++)
{
scanf("%d",&a[i]);
if(min>a[i])
min=a[i];

}
printf("%d ",min);}

/*
#include <stdio.h>

void main()
{
int a[5],i,j,t,k,min;

printf("please input 5 num!\n");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);//太罗嗦,scanf("%d",a+i)
min=i;
for(j=i+1;j<6;j++)
{

if(a[min]>a[j]) min=j;//a[j],又犯规了

t=a[i];
a[i]=a[min];
a[min]=t;
}

}
printf("%d ",a[min]);
}
*/
//这也没有必要这么复杂吧,既然,你已经排序了,需要最小值,从头或尾(这取决于与你的序列是非递增还是非递减的)取出便是
#include <stdio.h>

void main()
{
int a[5],i,j,t;

printf("please in