该程序实现了以下功能:

  1. 提示用户输入由 10 个正整数组成的数组。
  2. 使用循环将用户输入的数组存储到 arr 数组中。
  3. 计算数组元素的总和。
  4. 计算数组元素的平均值。
  5. 使用冒泡排序算法对数组进行升序排序。
  6. 定义两个指针,一个指向数组的起始位置,一个指向数组的末尾位置。
  7. 当起始指针小于末尾指针时,比较起始指针位置的元素是否小于平均值。
  8. 如果小于平均值,则将起始指针向后移动一位。
  9. 如果大于等于平均值,则将起始指针位置的元素与末尾指针位置的元素交换,并将起始指针向后移动一位,末尾指针向前移动一位。
  10. 打印平均值和移动后的数组。
#include <stdio.h>

int main() 
{
    int arr[10];
    printf('请输入由 10 个正整数组成的数组:\n');
    for (int i = 0; i < 10; i++) 
    {
        scanf('%d', &arr[i]);
    }
    double sum = 0;
    for (int i = 0; i < 10; i++) 
    {
        sum += arr[i];
    }
    double average = sum / 10;

    for (int i = 0; i < 9; i++) // 冒泡排序
    {
        for (int j = 0; j < 9 - i; j++) 
        {
            if (arr[j] > arr[j + 1]) 
            {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    int lowerIndex = 0;
    int higherIndex = 9;

    while (lowerIndex < higherIndex) 
    {
        if (arr[lowerIndex] < average)
        {
            lowerIndex++;
        } else 
        {
            int temp = arr[lowerIndex];
            arr[lowerIndex] = arr[higherIndex];
            arr[higherIndex] = temp;
            lowerIndex++;
            higherIndex--;
        }
    }

    printf('平均值: %.2f\n', average);
    printf('移动后的数据: ');
    for (int i = 0; i < 10; i++) {
        printf('%d ', arr[i]);
    }
    printf('\n');

    return 0;
}

原文地址: https://www.cveoy.top/t/topic/pBRY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录