有人能帮我看看吗运行结果不对

img


2.对题一中得到的降序数组,将数组的平均数插入数组中,使更新后数组仍按照降序排列。

按照你的代码逻辑简单调试了一下

img


#include <stdio.h>


int main(void)
{
    int a[10] = { 4,2,7,8,9,10,2,1,3,0 };
    int sum = 0;
    for (int i = 0; i < 10; i++) //求sum的和
    {
        sum += a[i];
    }

    int temp = 0;
    //按照你的逻辑  期望是降序排列
    for (int i = 0; i < 9; i++)
    {
        for (int j = i; j < 10; j++)
        {
            if (a[i] < a[j]) //每次i的位置放入和数组中最大的数
            {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
            }
        }
    }

    double aver = sum / 10.0;
    double b[11] = { 0 }; //你期望按降序+arev塞入b中
    //这里你的处理就开始混乱了
    int pos = 0;
    for (int i = 0; i < 10; i++) //i是a已经时降序的下标 同时和想处理的b的有一定关系
    {
        if (a[i] >= aver)
        {
            b[i+ pos] = a[i];
        }
        
        //塞入一个aver
        if (a[i] < aver && pos == 0)
        {
            b[i+ pos] = aver;
            pos = 1; //b比a下标差1
        }

        if (pos == 1)
        {
            b[i + pos] = a[i];
        }
        printf("%d ===>%lf \n", pos, b[i+pos]);
    }
    for (int i = 0; i < 11; i++)
    {
        printf("%d ===>%lf \n", i, b[i]);
    }

    return 0;
}