编程统计候选人的得票数。设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。选民投票结束后程序自动显

#include<stdio.h> 
#include<string.h> 
struct man 
{ 	
	char name[10]; 	
	int shu; 
}m[3]={"zhang",0,"li",0,"wang",0}; 
main() 
{ 	
	char name[10]; 
	int i,j; 	
	for(i=0;i<10;i++) 	
	{ 		
		scanf("%s",name); 		
		for(j=0;j<3;j++) 		
		{ 		
			if(strcmp(name,m[j].name)==0) 			
				m[j].shu+=1; 		
		} 	
	} 	
	for(i=0;i<3;i++) 	
	printf("%s %d\n",m[i].name,m[i].shu); 
} 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用以下代码实现: #include <stdio.h> #include <string.h> #define CANDIDATE_NUM 3 #define VOTER_NUM 10 struct Candidate { char name[10]; int votes; }; int main() { struct Candidate candidate[CANDIDATE_NUM] = { {"zhang", }, {"li", }, {"wang", } }; char vote_name[10]; int invalid_votes = ; printf("请输入10个选民投票结果:\n"); for (int i = ; i < VOTER_NUM; i++) { printf("第%d个选民投票结果:", i + 1); scanf("%s", vote_name); if (strcasecmp(vote_name, candidate[].name) == ) { candidate[].votes++; } else if (strcasecmp(vote_name, candidate[1].name) == ) { candidate[1].votes++; } else if (strcasecmp(vote_name, candidate[2].name) == ) { candidate[2].votes++; } else { invalid_votes++; } } printf("\n各候选人得票结果如下:\n"); for (int i = ; i < CANDIDATE_NUM; i++) { printf("%s: %d票\n", candidate[i].name, candidate[i].votes); } printf("废票数:%d\n", invalid_votes); return ; } 程序中使用结构体数组candidate表示3个候选人姓名得票结果。在主函数中,先初始化候选人数组,然后循环读入10个选民投票结果。使用strcasecmp函数比较输入的候选人姓名候选人数组中的姓名,如果相同,则将对应候选人得票数加1;否则,废票数加1。最后输出各候选人得票结果和废票数。 ### 回答2: 下面是一份Python的代码示例,能够实现题目所述的功能: ```python class Candidate: def __init__(self, name): self.name = name self.votes = 0 candidates = [Candidate("zhang"), Candidate("li"), Candidate("wang")] for i in range(10): vote = input("请选民输入候选人姓名:").lower() for candidate in candidates: if candidate.name == vote: candidate.votes += 1 break else: print("废票") print("得票结果:") for candidate in candidates: print(candidate.name, ":", candidate.votes) ``` 在这个代码中,我们定义了一个叫做`Candidate`的类,在初始化的时候设置了候选人姓名得票数属性。我们用一个列表来存储这3个候选人的信息。 然后我们用一个简单的循环来问每个选民输入候选人姓名,并检查这个名字是否匹配之前定义的候选人。如果匹配,我们就增加这个候选人得票数。如果没有匹配,我们就报告这张票是废票。 最后我们输出所以候选人得票结果,包括姓名得票数。 ### 回答3: 题目要求编程统计候选人得票数,首先需要定义一个结构体数组candidate,来表示3个候选人姓名得票结果。 ```c++ struct Candidate { string name; //候选人姓名 int votes; //得票数 } candidate[3] = {{"zhang", 0}, {"li", 0}, {"wang", 0}}; //定义结构体数组 ``` 以上定义了一个包含3个元素的结构体数组candidate,每个元素包含一个字符串name表示候选人姓名,和一个整数votes表示候选人得票数,初始值都为0。 然后,需要循环10次,每次从标准输入读入一个字符串,表示选民投票结果。如果字符串为"zhang"、"li"、"wang"中的一个,就将对应的候选人得票数增加1;如果不是这三个字符串,则将计入废票,不进行统计。 ```c++ for(int i = 1; i <= 10; i++) { string vote; cin >> vote; if(vote == "zhang" || vote == "Zhang") { candidate[0].votes++; } else if(vote == "li" || vote == "Li") { candidate[1].votes++; } else if(vote == "wang" || vote == "Wang") { candidate[2].votes++; } else { cout << "废票" << endl; } } ``` 最后,输出每个候选人得票结果和废票信息。 ```c++ for(int i = 0; i < 3; i++) { cout << candidate[i].name << "得票数:" << candidate[i].votes << endl; } ``` 完整代码如下: ```c++ #include <iostream> using namespace std; struct Candidate { string name; //候选人姓名 int votes; //得票数 } candidate[3] = {{"zhang", 0}, {"li", 0}, {"wang", 0}}; //定义结构体数组 int main() { for(int i = 1; i <= 10; i++) { string vote; cin >> vote; if(vote == "zhang" || vote == "Zhang") { candidate[0].votes++; } else if(vote == "li" || vote == "Li") { candidate[1].votes++; } else if(vote == "wang" || vote == "Wang") { candidate[2].votes++; } else { cout << "废票" << endl; } } for(int i = 0; i < 3; i++) { cout << candidate[i].name << "得票数:" << candidate[i].votes << endl; } return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值