要使用编程统计选票并制作表格,你可以按照以下步骤进行:
定义结构体:
首先,定义一个结构体来存储候选人的信息,包括候选人的编号和得票数。
初始化结构体数组:
创建一个结构体数组来存储所有候选人的信息,并初始化每个候选人的得票数为0。
输入选票:
通过循环输入每个选民的选票,并更新对应候选人的得票数。
统计和排序:
统计所有候选人的得票数,并按照得票数从高到低进行排序。
输出结果:
输出得票最多的候选人编号和得票数。
```c
include include // 定义结构体 struct Candidate { int num; // 候选人编号 int p; // 得票数 }; int main() { int m, n; // m为候选人人数,n为选民人数 scanf("%d%d", &m, &n); // 初始化候选人数组 struct Candidate candidates[m]; for (int i = 0; i < m; i++) { candidates[i].num = i + 1; candidates[i].p = 0; } // 输入选票 for (int i = 0; i < n; i++) { int candidate_num; scanf("%d", &candidate_num); if (candidate_num >= 1 && candidate_num <= m) { candidates[candidate_num - 1].p++; } else { printf("Invalid vote!\n"); } } // 找出得票最多的候选人 int max_votes = 0; int winner_index = 0; for (int i = 1; i < m; i++) { if (candidates[i].p > max_votes) { max_votes = candidates[i].p; winner_index = i; } } // 输出结果 printf("得票最多的候选人编号: %d\n", candidates[winner_index].num); printf("得票数: %d\n", max_votes); return 0; } ``` 建议 在实际应用中,应该对输入的候选人编号进行验证,确保其在有效范围内。 如果候选人人数较多,可以考虑使用动态数组来存储候选人信息,以便灵活调整数组大小。 添加适当的注释,使代码更易读和维护。 通过以上步骤和代码示例,你可以实现一个简单的选票统计程序,并输出得票最多的候选人编号和得票数。输入验证:
动态数组:
代码注释: