不知道是不是符合题意,下面是我的一个实现,供参考:
#include <stdio.h>
#define NUM 5 //最多几个被选举的人
struct person{
char name[20]; //名字
int votes; //票数
};
//因为winner函数没有使用参数,所以定义一个全局结构数组来传入投票数据给winner函数
struct person Condidate_Lib[NUM]={{"张三",50},{"李四",42},{"王五",52},{"丁六",36},{"小花",44} };
char * winner(){
int i,j;
int maxvotes=0; //最多的投票数,默认为0
int winner_pos; //投票最多的下标
for(i=0;i<NUM;i++){
if(maxvotes<Condidate_Lib[i].votes){ //如果投票数组里当前位置的投票数大于最多的投票,则更新最多的投票数及投票最多的下标
maxvotes=Condidate_Lib[i].votes;
winner_pos=i;
}
}
//循环结束,返回投票最多的人的名字
return Condidate_Lib[winner_pos].name;
}
int main(void){
printf("得票最多的是:%s 。\n",winner());
return 0;
}