5.编写一个投票程序,每张选票只能填写一个人的名字,输入n(n<100),再依次输入n个选票中被选人的姓名,然后输出得票最高者姓名
时间: 2024-06-10 08:08:29 浏览: 16
好的,这是一道编程问题,需要编写一个程序来实现。这里给出一个简单的示例代码(使用 Python 语言):
```python
n = int(input("请输入选票数量:"))
votes = {}
for i in range(n):
name = input("请输入第 %d 张选票的被选人姓名:" % (i+1))
if name in votes:
votes[name] += 1
else:
votes[name] = 1
max_votes = 0
winner = ""
for name, count in votes.items():
if count > max_votes:
max_votes = count
winner = name
print("得票最高者是 %s,共得到 %d 票。" % (winner, max_votes))
```
这个程序首先输入选票数量 n,然后逐个输入每张选票的被选人姓名,并用一个字典 votes 记录每个人的得票数。最后遍历 votes,找出得票最高的人和得票数,并输出结果。
希望这个示例代码能够帮到你!
相关问题
用c语言编写一个投票程序,每张票只能填写一个人的名字,输入n(n<100),再依次输入n个选票中被选人的名字,然后输出得票最高者的姓名(可多人并列,先达到票数的排在前面))
```c
#include <stdio.h>
#include <string.h>
#define MAX_CANDIDATE_NUM 100
#define MAX_NAME_LEN 20
int main() {
char candidate_names[MAX_CANDIDATE_NUM][MAX_NAME_LEN];
int candidate_votes[MAX_CANDIDATE_NUM] = {0};
int n;
printf("请输入候选人数:");
scanf("%d", &n);
getchar(); // 消耗换行符
printf("请输入候选人姓名:\n");
for (int i = 0; i < n; i++) {
fgets(candidate_names[i], MAX_NAME_LEN, stdin);
// fgets 会将换行符也读入,需要将其替换为结束符
int len = strlen(candidate_names[i]);
if (candidate_names[i][len - 1] == '\n') {
candidate_names[i][len - 1] = '\0';
}
}
printf("请输入选票(每行一个姓名):\n");
char name[MAX_NAME_LEN];
while (fgets(name, MAX_NAME_LEN, stdin) != NULL) {
int len = strlen(name);
if (name[len - 1] == '\n') {
name[len - 1] = '\0';
}
for (int i = 0; i < n; i++) {
if (strcmp(name, candidate_names[i]) == 0) {
candidate_votes[i]++;
break;
}
}
}
int max_vote = 0;
for (int i = 0; i < n; i++) {
if (candidate_votes[i] > max_vote) {
max_vote = candidate_votes[i];
}
}
printf("得票最高者是:\n");
for (int i = 0; i < n; i++) {
if (candidate_votes[i] == max_vote) {
printf("%s\n", candidate_names[i]);
}
}
return 0;
}
```
程序说明:
1. 使用二维字符数组 `candidate_names` 存储候选人姓名,一维表示候选人编号,二维表示姓名字符数组。使用一维整型数组 `candidate_votes` 存储候选人得票数,下标与 `candidate_names` 对应。
2. 先读入候选人数 `n`,然后使用 `fgets` 逐行读入候选人姓名,注意将换行符替换为结束符。
3. 使用 `fgets` 逐行读入选票,将每个姓名与候选人姓名比较,如果匹配则对应候选人得票数加一。
4. 扫描一遍 `candidate_votes`,找到最大得票数 `max_vote`。
5. 再次扫描 `candidate_votes`,输出得票数等于 `max_vote` 的候选人姓名。
用c语言编写有3个候选人,每个选民只能投票一人,要求编一个统计选票的程序,先输入被选人的明细,最后输出各人得票结果
好的,以下是一个简单的用C语言编写的统计选票程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_CANDIDATES 3
#define MAX_NAME_LENGTH 20
struct Candidate {
char name[MAX_NAME_LENGTH];
int votes;
};
int main() {
struct Candidate candidates[MAX_CANDIDATES];
int num_voters, i, j, vote;
char name[MAX_NAME_LENGTH];
// Input candidate names
for (i = 0; i < MAX_CANDIDATES; i++) {
printf("Enter name of candidate #%d: ", i+1);
scanf("%s", candidates[i].name);
candidates[i].votes = 0;
}
// Input number of voters
printf("Enter number of voters: ");
scanf("%d", &num_voters);
// Input votes
for (i = 0; i < num_voters; i++) {
printf("Voter #%d, enter your vote: ", i+1);
scanf("%s", name);
// Find candidate
for (j = 0; j < MAX_CANDIDATES; j++) {
if (strcmp(name, candidates[j].name) == 0) {
candidates[j].votes++;
break;
}
}
// Invalid vote
if (j == MAX_CANDIDATES) {
printf("Invalid candidate!\n");
}
}
// Output results
printf("\nResults:\n");
for (i = 0; i < MAX_CANDIDATES; i++) {
printf("%s: %d votes\n", candidates[i].name, candidates[i].votes);
}
return 0;
}
```
这个程序使用了一个结构体 `Candidate` 来存储被选人的名字和得票数。首先,程序会要求输入每个被选人的名字,并初始化他们的得票数为0。接着,程序要求输入投票人数,然后逐一输入每个投票人的投票结果。程序会查找投票结果对应的候选人,并将其得票数加1。如果输入的投票结果不是一个合法的候选人名字,程序会输出一个错误信息。最后,程序会输出每个被选人的得票数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)