C语言 有3个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入备选人的名字,最后输出各人的得票结果

#include <stdio.h>
#include <string.h>
struct Person{
	char name[20];
	int count;
}leader[3]={"Li",0,"Zhang",0,"Sun",0};
int main(){
	int i,j;
	char leader_name[20];
	for(i=1;i<=10;i++){
		scanf("%s",leader_name);
		for(j=0;j<3;j++)
			if(strcmp(leader_name,leader[j].name)==0)
				leader[j].count++;
	}
	printf("\n得票结果:\n");
	for(i=0;i<3;i++)
		printf("%5s:%d\n",leader[i].name,leader[i].count);
	return 0;
}

在这里插入图片描述

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,这是一个简单的统计选票程序,使用c语言实现,具体代码如下: ```c #include <stdio.h> #include <string.h> #define MAX_CANDIDATES 3 // 候选人数 #define MAX_NAME_LENGTH 20 // 姓名最大长度 // 候选人结构体 typedef struct { char name[MAX_NAME_LENGTH]; // 姓名 int votes; // 得票数 } Candidate; // 初始化候选人信息 void initCandidates(Candidate candidates[]) { strcpy(candidates[0].name, "Candidate 1"); candidates[0].votes = 0; strcpy(candidates[1].name, "Candidate 2"); candidates[1].votes = 0; strcpy(candidates[2].name, "Candidate 3"); candidates[2].votes = 0; } // 打印候选人得票情况 void printResult(Candidate candidates[]) { printf("Candidate 1: %d votes\n", candidates[0].votes); printf("Candidate 2: %d votes\n", candidates[1].votes); printf("Candidate 3: %d votes\n", candidates[2].votes); } int main() { Candidate candidates[MAX_CANDIDATES]; char name[MAX_NAME_LENGTH]; initCandidates(candidates); // 循环输入选票,直到输入结束 while (scanf("%s", name) != EOF) { if (strcmp(name, candidates[0].name) == 0) { candidates[0].votes++; } else if (strcmp(name, candidates[1].name) == 0) { candidates[1].votes++; } else if (strcmp(name, candidates[2].name) == 0) { candidates[2].votes++; } else { printf("Invalid name: %s\n", name); } } printResult(candidates); return 0; } ``` 程序定义了一个候选人结构体,包含姓名和得票数两个属性。通过 `initCandidates` 函数初始化候选人信息,通过 `printResult` 函数打印候选人得票情况。 在 `main` 函数,循环读取输入选票,根据候选人姓名累加得票数。如果输入的姓名不属于候选人的任何一个输出错误信息。 最后通过 `printResult` 函数打印候选人得票情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码字创文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值