C语言数组求和,,五个数据进行求和

关于C语言数组求和,要先把数据全部输入,然后怎么才能五个数求和,不足五个数的也算一组进行求和?

img

#include <stdio.h>
 
int main()
{
    int k;
    int a[50];
    scanf("%d", &k);
    int sum = 0;
    for (int i = 0; i < k; i++)
    {
        scanf("%d", &a[i]);
        if (i % 5 == 4 || i == k - 1)
        {
            sum += a[i];
            if (i % 5 == 4)
            {
                printf("%.2f ", sum / 5.0);
                sum = 0;
            }
            else
            {
                printf("%.2f", (float)sum / (i % 5 + 1));
            }
        }
        else
        {
            sum += a[i];
        }
    }
    return 0;
}

img

n对5进行取余,余数算一组

错误a

img


第二嵌套循环的n=0后再++是无法计数的,n=0要放在外循环内。

【以下回答由 GPT 生成】

#include <stdio.h>

int main() {
    int i, j, a[50], n, k, sum = 0;
    double avg;

    printf("请输入数组的个数:");
    scanf("%d", &k);

    printf("请输入%d个数组元素(以空格分隔):", k);
    for (i = 0; i < k; i++) {
        scanf("%d", &a[i]);
    }

    for (i = 0; i < k; i += 5) {
        sum = 0;
        n = 0;

        for (j = i; j < i + 5 && j < k; j++) {
            sum += a[j];
            n++;
        }

        avg = sum / (double)n;
        printf("%.2f ", avg);
    }

    return 0;
}

首先,我们声明了一些变量,包括i、j表示遍历数组的索引,a为数组,n表示每组求和的元素个数,k表示数组的总元素个数,sum表示每组求和的结果,avg表示每组的平均值。

然后,我们从用户处获取数组的个数和数组元素。通过for循环,将用户输入的数组元素存储到数组a中。

接下来,我们使用两个嵌套的for循环来进行求和和计算平均值。外层循环每次递增5,表示每隔5个元素为一组进行求和。内层循环从当前组的起始索引开始,一直加到当前组的结束索引,同时也需要进行边界判断,保证不会越界。在内层循环中,我们对当前组的元素进行求和,并记录当前组的元素个数。

最后,我们将当前组的求和结果除以元素个数得到平均值,并输出到屏幕上。

最后,我们输出求得的若干个平均值。

这样,我们就根据给定要求实现了对数组进行求和,每次求和五个数的功能。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^