#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct XP
{
char name[23];
int sum;
};
struct XP *Name(struct XP *p,int *sum)
{
int i;
printf("请输入选票人数:\n");
scanf("%d",sum);
p=(struct XP*)malloc(*sum*sizeof(struct XP));
for(i=0;i<*sum;i++){
p->sum=0;
printf("请输入参与投票的名字\n");
scanf("%s",p->name);
p++;
}
return p-*sum;
}
void Printf(struct XP *p,int sum)
{
int i;
struct XP *p1=p;
for(i=0;i<sum;i++){
printf("名字:%s,票数:%d\n",p1->name,p1->sum);
p1++;
}
}
int tp(struct XP *p,int sum)
{
char TP[28];
struct XP *p1=p;
int nu;
int i;
int flag;
int qp=0;
int j;
printf("请输入投票人数:\n");
scanf("%d",&nu);
for(i=0;i<nu;i++){
flag=0;
printf("请输入你要投给谁\n");
memset(TP,'\0',sizeof(TP));
scanf("%s",TP);
p=p1;
for(j=0;j<sum;j++){
if(strcmp(TP,p->name)==0){
p->sum++;
flag=1;
}
p++;
}
if(flag==0){
printf("无此人,无效!\n");
qp++;
}
}
return qp;
}
struct XP *Mmax(struct XP *p,int sum)
{
struct XP *Max=p;
int i;
for(int i=0;i<sum;i++){
if(Max->sum<p->sum){
Max=p;
}
p++;
}
return Max;
}
int main()
{
int total;
int qp;
struct XP *p=NULL;
p=Name(p,&total);
tp(p,total);
printf("弃票数%d\n",qp);
struct XP *pp=Mmax(p,total);
Printf(p,total);
printf("获得最多的是:%s,票数:%d\n",pp->name,pp->sum);
}
结构体指针函数之选票系统
最新推荐文章于 2024-06-13 19:32:31 发布