酷代码 AI
菜单
服务商

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

```cpp #include <iostream> int main() { // 定义数组来记录每个学生的得票数,初始化为0 int votes[10] = {0}; // 循环读取每个学生的投票结果 for (int i = 0; i < 10; i++) { int vote; std::cin >> vote; // 将对应编号学生的得票数加1 votes[vote - 1]++; } // 输出每个学生的得票数 for (int i = 0; i < 10; i++) { if (i > 0) { std::cout << " "; } std::cout << votes[i]; } std::cout << std::endl; return 0; } ``` 代码解释 1. 初始化得票数数组:定义了一个长度为10的整数数组 `votes`,并将所有元素初始化为0,用于记录每个学生的得票数。 2. 读取投票结果并更新得票数:通过一个 `for` 循环,循环10次,每次读取一个整数 `vote`,代表学生的投票对象。因为学生编号是从1到10,而数组索引是从0开始,所以将 `vote - 1` 作为数组索引,将对应位置的元素加1。 3. 输出每个学生的得票数:使用一个 `for` 循环遍历 `votes` 数组,输出每个学生的得票数。在输出时,如果不是第一个元素,先输出一个空格,以保证每个整数之间用空格隔开。最后换行。 复杂度分析 - 时间复杂度:代码中主要的操作是两次循环,每次循环的次数是固定的10次,所以时间复杂度为 $O(1)$。 - 空间复杂度:代码中使用了一个长度为10的数组来存储每个学生的得票数,所以空间复杂度为 $O(1)$。 [2026-02-08 16:35:02 | AI问答 | 454点数解答]

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