C语言 int 和double 排序时的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:17:06
# include<stdio.h>
void main()
{
int raw[10];
int i,j;
int t;
for(i=0;i<10;i++)
scanf("%d",&raw[i]);
for(j=0;j<10;j++)
{
for(i=0;i<9;i++)
{
if(raw[i]<raw[i+1])
{
t=raw[i];
raw[i]=raw[i+1];
raw[i+1]=t;
}

}
}
for(i=0;i<10;i++)
printf("%d ",raw[i]);
}
这个是我用整形做的数组由小到大的排序
但是当我把上面的int 换成double以后为什么就变成从大到小的排序了呢??????
当然里面的i,j前面的int不变

什么啊,你这个算法就是从大到小排序的。
if(raw[i]<raw[i+1]) //i比i+1小就调换,那不是i要求比i+1的值大???
{
t=raw[i];
raw[i]=raw[i+1];
raw[i+1]=t;
}

改成:
if(raw[i]>raw[i+1])//这个就是从小到大排序了
{
t=raw[i];
raw[i]=raw[i+1];
raw[i+1]=t;
}

说清楚点

具体哪个int