在这里插入代码片#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct XuanMin
{
char name[64];
int tickets;
};
struct XuanMin* initXM(struct XuanMin *p,int *pNumber)
{
struct XuanMin *pp;
int i;
if(p==NULL){
printf("请输入有几个人参选\n");
scanf("%d",pNumber);
pp=malloc(*pNumber*sizeof(struct XuanMin));
}
for(i=0;i<*pNumber;i++){
pp->tickets=0;
printf("请输入第%d个选民的名字\n",i+1);
scanf("%s",pp->name);
pp++;
}
return pp-*pNumber;
}
int doVot(struct XuanMin *p,int len)
{
int i;
int total = 5;
char tmpName[64];
int j;
struct XuanMin *pbak = p;
int mark ;
int feipiao=0;
for(i=0;i<total;i++){
printf("你要投给谁\n");
memset(tmpName,'\0',sizeof(tmpName));
scanf("%s",&tmpName);
p=pbak;
mark = 0;
for(j=0;j<len;j++){
if(strcmp(tmpName,p->name)==0){
p->tickets++;
mark =1;
}
p++;
}
if(mark==0){
printf("没有此候选人,投票无效\n");
feipiao++;
}
}
return feipiao;
}
void printfXm(struct XuanMin *p,int len)
{
int i;
for(i=0;i<len;i++){
printf("姓名:%s,票数:%d\n",p->name,p->tickets);
p++;
}
}
struct XuanMin* getMax(struct XuanMin *p,int len)
{
int i;
struct XuanMin *M;
M=p;
for(i=0;i<len;i++){
if(M->tickets < p->tickets){
M=p;
}
p++;
}
return M;
}
int main()
{
int xmNumber=0;
struct XuanMin *xm=NULL;
int feipiao;
struct XuanMin *Max;
xm=initXM(xm,&xmNumber);
feipiao = doVot(xm,xmNumber);
printfXm(xm,xmNumber);
Max=getMax(xm,xmNumber);
printf("获票最多的是:%s,票数:%d,废票是:%d\n",Max->name,Max->tickets,feipiao);
return 0;
}