如何让上个程序显示出魔法宝石的个数
时间: 2024-11-13 14:19:58 浏览: 5
如果你想在程序中同时显示符合条件的魔法宝石的个数,你可以稍作修改,在`collectGemstones`函数内部增加一个计数器,并在适当的地方更新它。以下是修改后的部分代码:
```c
#include <stdio.h>
#include <stdbool.h> // 添加头文件以支持布尔类型
#define PRINT_PROCESS 1
int count = 0; // 新增一个全局变量,记录符合条件的宝石个数
bool shouldPrint = PRINT_PROCESS;
// 递归函数,检查宝石编号并更新计数和总和
int collectGemstones(int n, int sum, bool showProcess) {
count++; // 每次进入函数就加一,表示找到了一颗宝石
if (showProcess && shouldPrint) {
printf("Collecting gem with number %d\n", n);
}
if (n % 4 == 0 || n % 10 == 7) {
sum += n;
}
// 递归调用,考虑下一个编号
return n == 1 ? sum : collectGemstones(n - 1, sum, showProcess);
}
int main() {
int n, totalSum = 0;
printf("Enter the highest magic gem number: ");
scanf("%d", &n);
// 开始递归计算
totalSum = collectGemstones(n, totalSum, shouldPrint); // 更新shouldPrint为局部变量
printf("The sum of collected magic gems is: %d\n", totalSum);
printf("Total number of collected magic gems is: %d\n", count); // 输出宝石总数
return 0;
}
```
现在当你运行程序时,除了总和之外还会显示符合条件的魔法宝石的个数。
阅读全文