酷代码 AI
菜单

第一波雷电可能包含5种不同的雷电形态,编号为1~5,现在已知第一波雷电一共要打10个雷,桃子想要知道每种形态的雷电分别有几个,请你设计程序帮桃子解决这个问题吧。 输入: 输入包括一行。 第一行包含十个整数,每个整数代表这个数表示的雷电形态编号,保证每个编号都小于等于5。 输出: 输出包括一行,包含5个整数,分别为编号1~5的雷电的数量,每个整数之间用空格隔开#include <iostream> using namespace std; int num[10]; int main() { for (int i = 1; i <= 10; i++) { int x; cin >> x; // 使用带含义的数组保存数据 } for (int i = 1; i <= 5; i++) { // 输出所有数据 } return 0; }

以下是完整的代码,用于解决统计每种雷电形态数量的问题: ```cpp #include <iostream> using namespace std; // 用于存储每种雷电形态的数量,索引 1 - 5 分别对应雷电形态 1 - 5 int num[6]; int main() { // 循环读取 10 个雷电形态编号 for (int i = 0; i < 10; i++) { int x; cin >> x; // 对应编号的雷电数量加 1 num[x]++; } // 输出编号 1 - 5 的雷电的数量 for (int i = 1; i <= 5; i++) { if (i > 1) { cout << " "; } cout << num[i]; } return 0; } ``` 代码解释: 1. 数组定义:`int num[6];` 定义了一个长度为 6 的整数数组,使用索引 1 - 5 来分别存储编号为 1 - 5 的雷电形态的数量。 2. 输入处理:通过 `for` 循环读取 10 个雷电形态编号,每读取一个编号 `x`,就将 `num[x]` 的值加 1,以此统计每种雷电形态出现的次数。 3. 输出结果:通过另一个 `for` 循环遍历 `num` 数组的索引 1 - 5,依次输出每种雷电形态的数量,并且在每个数量之间用空格隔开。 复杂度分析: - 时间复杂度:$O(n)$,其中 $n = 10$,因为只需要遍历一次输入的 10 个数字,再遍历一次存储结果的数组。 - 空间复杂度:$O(1)$,因为只使用了固定大小的数组来存储结果。 [2026-01-24 19:41:09 | AI问答 | 437点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多