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

C语言如何读取数组已输入元素并计算各元素占总和的百分比

解决方案

你编写的代码已经将所有输入的数组元素存储在ara数组中,只需新增遍历计算占比的输出逻辑即可,注意处理整数除法和除以0的异常场景即可。

完整可运行代码

#include <stdio.h>

int main(){
    int i,sum,size;
   
    printf("Enter array length : \n");
    scanf("%d",&size);
    int ara[size];
    printf("Enter array elements:\n");
    
    for(i = 0; i < size;  i++){
        scanf("%d", &ara[i]);
    }
    sum=0;
    
    for(i = 0; i < size; i++){
        sum+=ara[i]; 
    }

    // 新增占比计算输出逻辑
    if(sum == 0) {
        printf("数组总和为0,无法计算占比\n");
        return 0;
    }
    for(i = 0; i < size; i++) {
        double percentage = (double)ara[i] / sum * 100;
        printf("%d占总和的%.2f%%\n", ara[i], percentage);
    }
    return 0;
}

核心修改说明

  • 新增总和为0的判断逻辑,避免出现除以0的运行崩溃问题
  • 计算百分比时将元素强转为double类型,避免C语言整数除法默认截断导致的结果错误
  • 输出时使用%.2f格式化占位符控制百分比保留两位小数,%%用于输出百分号本身

测试验证

输入数组长度为4,元素依次为1、2、2、1时,输出结果如下:

1占总和的16.67%
2占总和的33.33%
2占总和的33.33%
1占总和的16.67%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:24:03