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

来源:6-5 数组的应用(一)

qq_BornToBeSome_0

2017-03-13 17:23

#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回答

  • 沧月千泷
    2017-03-13 20:17:31
    已采纳

    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;

    }

    }

    }


    qq_Bor...

    非常感谢!你好棒!

    2017-03-14 14:14:51

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926025 学习 · 20793 问题

查看课程

相似问题