为了账号安全,请及时绑定邮箱和手机立即绑定

想请问为什么我写的循环排序不成功?

#include <stdio.h>

int main()

{

    double arr[] = {1.78, 1.77, 1.82, 1.79, 1.85, 1.75, 1.86, 1.77, 1.81, 1.80};

int i,j;

double min;

for(i=0;i<=9;i++)

{

printf("排序之前:%.2f\n",arr[i]);

}

for(i=0;i<=9;i++)     //循环一共要进行10趟,每趟将

{

for(j=i;j<=9;j++)

{

min=arr[0];      //初始化第一个元素为最小

if(arr[j]<arr[0])

{

min=arr[j];

arr[j]=arr[0];

arr[0]=min;

}

}

}

printf("*********\n");

for(i=0;i<=9;i++)

{

printf("排序之后:%.2f\n",arr[i]);

}

return 0;

}


正在回答

1 回答

min=arr[0]; 改为min=arr[i]; arr[0]=min;改为arr[i]=min;

内部循环是找最小值,然后放在数组靠左边,外部循环类似把最小值去掉后的左界

for (i = 0; i <= 9; i++)

{

printf("排序之前:%.2f\n", arr[i]);

}

for (i = 0; i <= 9; i++)     //循环一共要进行10趟,每趟将

{

for (j = i; j <= 9; j++)

{

min = arr[i];      //初始化第一个元素为最小

if (arr[j]<arr[i])

{

min = arr[j];

arr[j] = arr[i];

arr[i] = min;

}

}

}


2 回复 有任何疑惑可以回复我~
#1

qq_BornToBeSome_0 提问者

非常感谢!你好棒!
2017-03-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

想请问为什么我写的循环排序不成功?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信