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

C语言如何计算数组排除小于80的元素总和 解决if判断失效问题

问题原因与修复方案

核心问题

  • 你当前贴出的代码里完全没有加入判断小于80的逻辑,第二个for循环直接累加了所有数组元素,自然无法实现过滤效果
  • 如果你之前尝试添加if (a[x] < 80)但未生效,几乎都是因为没有给for循环加大括号,导致if语句不在循环的执行范围内,仅会在循环结束后执行一次,起不到逐元素判断的作用
  • 当前第二个for循环没有写大括号,只有紧随其后的sum=sum+a[x];会被循环执行,后续的打印语句仅执行一次,虽然当前场景下不影响结果,但新增逻辑时很容易触发bug

修复后的代码

#include<stdio.h>
#include<conio.h>
#define p printf

int main()
{
clrscr();
int a[10], x, sum=0;
p("\nEnter 10 numbers greater than 80: ");
for(x=0; x<10; x++)
    scanf("%d", &a[x]);

for(x=0; x<10; x++) {
    // 仅累加大于等于80的元素,等价于排除小于80的元素
    if(a[x] >= 80) {
        sum += a[x];
    }
}
p("The sum is %d", sum);
getch();
return 0;
}

关键修改说明

  • 给第二个for循环添加了大括号,包裹所有需要循环执行的逻辑
  • 新增if(a[x] >= 80)判断,仅符合要求的元素才会被累加到总和中
  • 补充了main函数的int返回值类型,符合C语言标准规范,避免编译器告警

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:36:03