好的,我理解你的要求。以下是基于你提供的数组名来实现具体代码:
### 代码:
#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 小助理,如未能正确解答您的问题,请继续追问。