C语言代码纠错纠错纠纠错

img

img


最大值和最小值能找到,但是重新排序后的数字还是没有变化,应该怎么修改

你这代码没有重新排序啊,只是找出了最小值和最大值而已

我简单写了一个排序,可以参考一下

#include <stdio.h>

int main()
{
    int a[5],i,j;
    //数组初始化
    for (i = 0; i < 5; i++) {
        a[i] = 0;
    }
    //用户输入
    for (i = 0; i < 5; i++) {
        scanf("%d", &a[i]);
    }

    //冒泡排序
    int temp;
    for (i = 0; i < 5 - 1; i++)
    {
        for (j = 0; j < 5 - i - 1; j++)
        {
            if (a[j] > a[j + 1])
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }
     //遍历输出
    printf("排序后:\n");
    for (i = 0; i < 5; i++)
    {
        printf("%d\n",a[i]);
    }
    return 0;
}

运行结果如下

img

上面的排序看不懂的话,那就看看这个排序吧

#include <stdio.h>

int main()
{
    int a[5], i, j;
    //数组初始化
    for (i = 0; i < 5; i++) {
        a[i] = 0;
    }
    //用户输入
    for (i = 0; i < 5; i++) {
        scanf_s("%d", &a[i]);
    }

    //随便写的排序
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 5; j++)     
        {
            if (a[i] < a[j])
            {
                int temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }


    //遍历输出
    printf("排序后:\n");
    for (i = 0; i < 5; i++)
    {
        printf("%d\n", a[i]);
    }
    return 0;
}