好的,我理解你的要求。以下是基于你提供的数组名来实现具体代码:
### 代码:
- #include <stdio.h>
- #include <string.h>
- #define MAX_STUDENTS 100
- #define MAX_NAME_LEN 50
- char name[MAX_STUDENTS][MAX_NAME_LEN]; // 黑板上的名字
- int Num[MAX_STUDENTS]; // 票数数组
- char tempname[MAX_NAME_LEN]; // 临时存放输入的名字
- int student_count = 0; // 学生总数
- // 添加一票
- void add_vote(char* tempname) {
- for (int i = 0; i < student_count; i++) {
- if (strcmp(name[i], tempname) == 0) {
- Num[i]++;
- return;
- }
- }
- // 新增学生
- strcpy(name[student_count], tempname);
- Num[student_count] = 1;
- student_count++;
- }
- // 打印结果
- void print_results() {
- for (int i = 0; i < student_count; i++) {
- printf("%s: %d\n", name[i], Num[i]);
- }
- }
- int main() {
- int total_votes; // 总投票人数
- printf("请输入总投票人数:");
- scanf("%d", &total_votes);
- for (int i = 0; i < total_votes; i++) {
- printf("请输入投票的姓名:");
- scanf("%s", tempname);
- add_vote(tempname);
- }
- printf("投票结果如下:\n");
- print_results();
- return 0;
- }
复制代码
### 代码解释:
1. **全局变量定义**:
- `name`:存储每个学生的姓名,相当于黑板上的名字。
- `Num`:存储每个学生的得票数。
- `tempname`:存储临时输入的名字。
- `student_count`:记录当前已经存储的学生总数。
2. **添加一票 `add_vote` 函数**:
- 遍历现有的学生姓名数组 `name`,若找到匹配的姓名,则对应 `Num` 票数加1。
- 如果没有找到匹配的姓名,则将该姓名添加到 `name` 数组中,并将对应的票数 `Num` 设为 1。
3. **打印结果 `print_results` 函数**:
- 遍历存储学生姓名和票数的数组,打印每个学生的姓名和票数。
4. **主函数 `main`**:
- 首先询问用户输入总投票人数 `total_votes`。
- 循环输入每个投票的学生姓名,存到 `tempname` 中,调用 `add_vote` 函数进行统计。
- 输入完毕后,调用 `print_results` 函数输出每个学生的得票结果。
通过这个程序,可以简单地实现班长投票的票数统计功能。如果有任何不清楚的地方,请随时问我!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。