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

如何在C语言for循环迭代中保存变量值并计算总伤害?

问题解答

1. for循环是否合适?

完全合适。你的场景是需要重复执行固定次数的攻击伤害计算,for循环天然适配这种已知循环次数的迭代场景,逻辑清晰且容易维护。

2. 计算总伤害并仅输出结果

你需要新增一个累加变量来存储总伤害,初始值设为0,每次循环把当前攻击的伤害值加到这个变量里。循环结束后输出该变量即可得到总伤害。

3. 保存每次迭代的变量值

可以用数组来保存每次攻击的伤害值,数组大小可根据你预期的最大攻击次数设定(新手阶段先用固定大小数组即可,后续可学习动态内存分配适配任意大小)。

修改后的完整代码

#include <stdio.h>

int main(){
    int n;
    int bonusDam = 0;
    int i;
    int currentDamage;
    int totalDamage = 0;
    // 定义数组保存每次伤害,假设最大攻击次数不超过100,可按需调整
    int damageHistory[100];

    scanf("%d", &n);

    for (i = 0; i < n; i++){ // 从0开始计数更适配数组索引
        currentDamage = 100 + bonusDam;
        totalDamage += currentDamage; // 累加总伤害
        damageHistory[i] = currentDamage; // 保存当前伤害到数组
        bonusDam += 50;
    }

    // 仅输出总伤害
    printf("%d\n", totalDamage);

    // 可选:验证保存的每次伤害值(需时取消注释)
    // printf("每次攻击伤害记录:\n");
    // for (i = 0; i < n; i++){
    //     printf("Hit %d: %d\n", i+1, damageHistory[i]);
    // }

    return 0;
}

代码说明

  • totalDamage:初始值为0,每次循环将当前攻击伤害currentDamage累加到其中,循环结束后即为n次攻击的总伤害。
  • damageHistory数组:用来存储每次攻击的伤害值,数组索引从0开始,对应第1到第n次攻击(输出攻击次数时用i+1即可对应)。
  • 输入3时,程序会直接输出450,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 23:06:09