#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct XuanMin
{
char name[32];
int tickets;
};
struct XuanMin* initXms(struct XuanMin *p,int *pn)
{
int i;
if (p == NULL){
printf("请输入有几个人参选\n");
scanf("%d",pn);
p = (struct XuanMin *)malloc((*pn)*sizeof(struct XuanMin));
}
for(i=0;i<*pn;i++){
p->tickets =0;
printf("请输入第%d个选民的名字\n",i+1);
scanf("%s",p->name);
p++;
}
return p-*pn;
}
void printXms(struct XuanMin *p,int len)
{
int i;
for(i=0;i<len;i++){
printf("姓名 %s 票数 %d\n",p->name,p->tickets);
p++;
}
}
int deVot(struct XuanMin *p,int len)
{
char tmpName[32];
struct XuanMin *pbak = p;
int mark=0;
int feipiao = 0;
int i;
for(i=0;i<5;i++){
mark=0;
memset(tmpName,'\0',sizeof(tmpName));
printf("请输入输入你要选的名字");
scanf("%s",tmpName);
p = pbak;
for(int j = 0;j<len;j++){
if(strcmp(p->name,tmpName) == 0)
{
p->tickets++;
mark = 1;
}
p++;
}
if(mark != 1){
printf("没有此人 弃票\n");
feipiao ++;
}
}
return feipiao;
}
int main()
{
struct XuanMin *xm = NULL;
int total;
int feipiao = 0;
xm = initXms(xm,&total); // zhizhen zhixiang
printXms(xm,total);
feipiao = deVot(xm,total);
printf("废票数 %d\n",feipiao);
printXms(xm,total);
return 0;
}