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不变
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
用C语言计算int,long,double,long double和 char占用的内存字节数
C语言里,什么是整形变量和复合变量?int和double的区别
C语言中的double和float
C语言中,int和char型
大家好,我想问一下,C语言中int,unsigned int,short int,double等,这些怎么区别,什么时候用哪个呀
C语言中的char和int什么时候不可以通用
C语言 有关int和long的问题
C语言中 指针int *a=10;和int *a; *a=10;的区别
C语言中putpixel(int x,int y,int color)中color的取值范围和具体介绍
c语言int型变量