You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言新手求助:输入n个整数计算总和、平均值及平方和的实现

修改方案

你只需要做3处简单调整即可实现平方和计算逻辑:

  • 先在开头的变量声明段新增用于存储平方和的变量,代码如下:
    int i,n,Sum=0,numbers, square_sum = 0;
    float Average;
    
  • 在循环读取输入数字的逻辑中,累加总和的同时累加当前数字的平方值:
    for(i=0;i<n;++i)
    {
        scanf("%d", &numbers);
        Sum = Sum +numbers;
        square_sum += numbers * numbers; // 新增平方累加逻辑
    }
    
  • 取消平方和输出语句的注释,补全输出参数:
    printf("\nSum of the Square of %d Numbers = %d",n, square_sum);
    

完整可运行代码

#include <stdio.h>

int main()
{
    int i,n,Sum=0,numbers, square_sum = 0;
    float Average;
    
    printf("\nPlease Enter How many Numbers you want?\n");
    scanf("%d",&n);
    
    printf("\nPlease Enter the Number(s) one by one\n");
    for(i=0;i<n;++i)
    {
        scanf("%d", &numbers);
        Sum = Sum +numbers;
        square_sum += numbers * numbers;
    }
    
    Average = Sum/(float)n; // 修复整数除法丢失小数精度的问题

    printf("\nSum of the %d Numbers = %d",n,Sum);
    printf("\nAverage of the %d Numbers = %.2f",n, Average);
    printf("\nSum of the Square of %d Numbers = %d",n, square_sum);
    
    return 0;
}

补充说明

你原本的平均值计算逻辑存在小缺陷:当Sum和n都是整型时,C语言默认按整数除法运算,会丢失小数精度,比如输入2个数字1和2,总和为3,3/2会得到1而非1.5,上述完整代码中已经通过强转n为float类型修复了该问题。
如果后续需要处理数值较大的输入,避免平方值超出int类型的存储范围,可以把square_sum的类型改为long long,对应的输出占位符同步改为%lld即可。

内容的提问来源于stack exchange,提问作者Ryuutorii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:36:04