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

