#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct HouXuanRen
{
char name[32];
int tickets;
};
struct HouXuanRen* initHouXuanRen(struct HouXuanRen *p,int *hxrtotal)
{
int i=0;
if(p == NULL)
{
printf("请输入有几个候选人参加\n");
scanf("%d",hxrtotal);
p = (struct HouXuanRen*)malloc(*hxrtotal*sizeof(struct HouXuanRen));
}
for(i = 0 ; i < *hxrtotal ; i++)
{
p->tickets = 0;
printf("请输入第%d个候选人的名字",i+1);
scanf("%s",p->name);
p++;
}
return p-*hxrtotal;
}
void printhxr(struct HouXuanRen *p,int *hxrtotal)
{
int i;
for(i = 0 ; i < *hxrtotal ; i++)
{
printf("名字:%s,票数:%d\n",p->name,p->tickets);
p++;
}
}
int toupiao(struct HouXuanRen *p,int *hxrtotal)
{
int i;
int j;
int mark;
int feipiao=0;
int toupiaototal = 0;
struct HouXuanRen *bak;
char toupiaoren[32];
bak = p;
printf("请输入有几个投票人\n");
scanf("%d",&toupiaototal);
for(i = 0 ; i < toupiaototal ; i++)
{
memset(toupiaoren,'\0',sizeof(toupiaoren));
p = bak;
mark = 0;
printf("请输入第%d个人要投的候选人名字",i+1);
scanf("%s",toupiaoren);
for(j = 0 ; j < *hxrtotal ; j++)
{
if(strcmp(p->name,toupiaoren) == 0)
{
p->tickets++;
mark = 1;
}
p++;
}
if(mark == 0)
{
printf("此票作废!!\n");
feipiao++;
}
}
return feipiao;
}
void printtoupiaohouxinxi(struct HouXuanRen *p,int *hxrtotal,int *feipiao)
{
int i;
puts("\n投票后的结果");
for(i = 0 ; i < *hxrtotal ;i++)
{
printf("候选人名字:%s,候选人票数%d\n",p->name,p->tickets);
p++;
}
printf("废票数:%d\n",*feipiao);
}
struct HouXuanRen *getMax(struct HouXuanRen *p,int *hxrtotal)
{
int i;
struct HouXuanRen *Max;
Max = p;
for(i = 1 ; i < *hxrtotal ;i++)
{
if(Max->tickets < p->tickets)
{
Max = p;
}p++;
}
return Max;
}
void printGetMax(struct HouXuanRen *p,struct HouXuanRen *Max,int *feipiao)
{
printf("%s以%d票当选!!废票数为:%d",Max->name,Max->tickets,*feipiao);
}
int main()
{
struct HouXuanRen *hxr = NULL;
struct HouXuanRen *Max = NULL;
int hxrtotal = 0;
int feipiao = 0;
hxr = initHouXuanRen(hxr,&hxrtotal);
printhxr(hxr,&hxrtotal);
feipiao = toupiao(hxr,&hxrtotal);
printtoupiaohouxinxi(hxr,&hxrtotal,&feipiao);
Max = getMax(hxr,&hxrtotal);
printGetMax(hxr,Max,&feipiao);
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/f0a3cf279b9a47fe97e340bc0ba6b4ce.png)