关于c语言double类型选择排序

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:10:24
我的算法只能算int型的,不能算double的,怎么才能算double的呢
#include<stdio.h>
void main(void)
{
int i,j,max,temp,a[5]={1.2,2.9,6.3,3.1,9.8};
printf("%d,%d,%d,%d,%d\n",a[0],a[1],a[2],a[3],a[4]);
for(i=0;i<4;i++)
{
max=i;
for(j=i+1;j<5;j++)
if(a[j]>a[max])
max=j;
if(max!=i)
{
temp=a[i];a[i]=a[max];a[max]=temp;
}
}
for(i=0;i<5;i++)
printf("%-4d",a[i]);
}
最好能说明一下我的为什么错,谢谢

#include<stdio.h>
void main(void)
{
int i,j,max;
double temp,a[5]={1.2,2.9,6.3,3.1,9.8};
printf("%g,%g,%g,%g,%g\n",a[0],a[1],a[2],a[3],a[4]);
for(i=0;i<4;i++)
{
max=i;
for(j=i+1;j<5;j++)
if(a[j]>a[max])
max=j;
if(max!=i)
{
temp=a[i];a[i]=a[max];a[max]=temp;
}
}
for(i=0;i<5;i++)
printf("%-4g",a[i]);
}

#include<stdio.h>
void main(void)
{
int i,j,max;
double temp;
double a[5]={1.2,2.9,6.3,3.1,9.8};
for (i = 0;i<5;i++)
{
printf("%lf\n",a[i]);
}
for(i=0;i<4;i++)
{
max=i;
for(j=i+1;j<5;j++)
if(a[j]>a[max])
max=j;
if(max!=i)
{
temp=a[i];a[i]=a[max];a[max]=temp;
}
}
printf("排序后结果如下:\n");
for(i=0;i<5;i++)
printf("%-4lf\n",a[i]);
retur