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
相关产品推荐
相关产品推荐

