酷代码 AI
菜单
服务商

c++K博士想在自己的学生中选出一位学生做自己的代表。K博士一共有10位学生,分别从1到10一一编号,采用投票的方式进行选举,每个学生只能够投一次。得票最高的学生就将成为K博士的代表。 输入: 输入包括一行。 第一行包含十个整数,每个整数代表这位学生投给了谁。 输出: 输出包括一行,包含10个整数,分别为编号1~10的学生获得的票数,每个整数之间用空格隔开。

以下是解决该问题的 C++ 代码: ```cpp #include <iostream> using namespace std; int main() { // 用于存储每个学生的得票数,初始化为 0 int votes[10] = {0}; for (int i = 0; i < 10; i++) { int vote; cin >> vote; // 由于编号从 1 开始,所以要减 1 对应数组下标 votes[vote - 1]++; } // 输出每个学生的得票数 for (int i = 0; i < 10; i++) { if (i > 0) { cout << " "; } cout << votes[i]; } cout << endl; return 0; } ``` 代码解释: 1. 定义数组:定义一个长度为 10 的整数数组 `votes`,用于存储每个学生的得票数,初始值都为 0。 2. 读取投票信息:通过 `for` 循环读取 10 个整数,表示每个学生的投票对象。将投票对象对应的数组元素加 1。 3. 输出得票数:再次使用 `for` 循环遍历数组 `votes`,输出每个学生的得票数,每个整数之间用空格隔开。 复杂度分析: - 时间复杂度:$O(n)$,其中 $n$ 是学生的数量,这里 $n = 10$。 - 空间复杂度:$O(n)$,主要用于存储每个学生的得票数。 [2025-12-26 19:22:34 | AI问答 | 373点数解答]

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