某次选举,要从五个候选人(编号分别为1、2、3、4、5)中选一名厂长。请编程完成统计选票的工作。规定:投票过程通过键盘循环输入数字来模拟,如输入3表示投给了3号,再次输入5表示投给了5号……一直到输入-1结束投票。
时间: 2024-06-10 12:08:05 浏览: 11
好的,这是一个统计选票的程序。请参考以下代码:
```python
candidates = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0} # 初始化候选人列表
print("请输入选票编号,投票结束请输入-1")
while True:
vote = int(input())
if vote == -1:
break
if vote in candidates:
candidates[vote] += 1 # 统计票数
else:
print("输入错误,请重新输入")
print("选票统计结果如下:")
for candidate, votes in candidates.items():
print("候选人{}:{}票".format(candidate, votes))
```
请注意,此程序并未处理一些异常情况,如输入非数字字符或负数等。如果需要更加严谨的处理,可以在代码中进行增加。希望能对你有所帮助!
相关问题
某次选举,要从五个候选人(编号分别为1、2、3、4、5)中选一名厂长。请编程完成统计选票的工作。c语言实现
好的,以下是一份 C 语言的代码实现:
```c
#include <stdio.h>
int main() {
int votes[5] = {0}; // 初始化选票数组为0
int candidate; // 存储选民投票的候选人编号
int i;
// 循环读取选民的投票,输入-1结束投票
while (1) {
printf("请输入您的投票: ");
scanf("%d", &candidate);
if (candidate == -1) {
break;
}
if (candidate >= 1 && candidate <= 5) {
votes[candidate - 1]++; // 候选人编号从1开始,数组下标从0开始,所以要减1
} else {
printf("无效的候选人编号!\n");
}
}
// 输出各候选人的得票情况
printf("候选人编号\t得票数\n");
for (i = 0; i < 5; i++) {
printf("%d\t\t%d\n", i + 1, votes[i]);
}
// 找出得票最高的候选人
int max_votes = votes[0]; // 初始化最高票数为第一个候选人的票数
int max_candidate = 1; // 初始化最高票数的候选人编号为1
for (i = 1; i < 5; i++) { // 从第二个候选人开始比较
if (votes[i] > max_votes) {
max_votes = votes[i];
max_candidate = i + 1;
}
}
// 输出得票最高的候选人
printf("得票最高的候选人是%d号,得票数为%d。\n", max_candidate, max_votes);
return 0;
}
```
这份代码实现了从控制台读取选民投票,统计各候选人得票情况,找出得票最高的候选人等功能。需要注意的是,候选人编号从1开始,数组下标从0开始,所以在存储选票时要将候选人编号减1。
C语言编写一个程序,模拟选举过程,共有 n 个人参加选举,如候选人有 4 位,分别用数字1、2、3、4 编号,选举某位候选人时直接从键盘上输入编号,如果输入其他字符无效。选举结果按得票多少顺序输出候选人的编号和票数
这个问题我已经回答过了,您可以看一下上面的回答。以下是另一个示例程序,它也可以实现您的需求:
```c
#include <stdio.h>
int main() {
int n, candidate[4] = {0}; // n为参选人数,candidate数组用来记录每个候选人的得票数
printf("请输入参选人数:");
scanf("%d", &n);
printf("请依次输入候选人编号进行投票(其他字符为无效投票):\n");
for (int i = 0; i < n; i++) {
int num;
scanf("%d", &num);
switch (num) { // 判断输入是否为有效编号
case 1:
candidate[0]++;
break;
case 2:
candidate[1]++;
break;
case 3:
candidate[2]++;
break;
case 4:
candidate[3]++;
break;
default:
break;
}
}
// 冒泡排序
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3 - i; j++) {
if (candidate[j] < candidate[j + 1]) {
int temp = candidate[j];
candidate[j] = candidate[j + 1];
candidate[j + 1] = temp;
}
}
}
// 输出结果
printf("选举结果如下:\n");
for (int i = 0; i < 4; i++) {
printf("候选人 %d: %d 票\n", i + 1, candidate[i]);
}
return 0;
}
```
上面的代码中,我们使用一个名为 `candidate` 的数组来记录每个候选人的得票数。在投票过程中,我们使用 switch 语句来判断输入是否为有效编号,并将相应候选人的得票数加1。最后,我们使用冒泡排序将得票数从高到低排序,并输出候选人的编号和票数。
希望这个程序能够满足您的需求。如果您有其他问题,欢迎随时提出。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)