|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天看完小甲鱼老师的视频(结构体),自己编了一个投票系统,可是有一个小问题,希望小甲鱼老师能给予解决,谢谢啦!!
下面附上源码和截图:
#include<stdio.h>
#include<string.h>
void welcome(void)
{
printf(" *****************************\n");
printf(" * *\n");
printf(" * 欢迎进入投票系统 *\n");
printf(" * *\n");
printf(" *****************************\n");
}
struct people
{
char name[20];
int votes;
}person[100];
void main()
{
void get_name(struct people *p , int n);
void vote(struct people *p, int n , int m);
void print_votes(struct people *p, int n);
void vote_result(struct people *p, int n);
welcome();
struct people *p;
p=person;
int n , m;
printf("请输入候选人的总数:");
scanf("%d",&n);
printf("\n");
printf("请输入选民总数:");
scanf("%d",&m);
printf("\n");
get_name(p,n);
vote(p,n,m);
print_votes(p,n);
vote_result(p,n);
}
void get_name(struct people *p, int n)
{
int i=1;
for(p=person;p<person+n;p++)
{
printf("请输入第 %d 个候选人的姓名:",i++);
scanf("%s",p->name);
printf("\n");
}
printf(" ***************************!!完美分割线!!****************************\n\n");
}
void vote(struct people *p, int n ,int m)
{
int i;
char name1[20];
for(i=1;i<=m;i++)
{
printf("第 %d 位投票者投票,请写下支持的候选人名字:",i);
gets(name1);
for(p=person;p<person+n;p++)
{
if(strcmp(p->name,name1)==0)
p->votes++;
}
printf("\n");
}
printf(" ***************************!!完美分割线!!****************************\n\n");
}
void print_votes(struct people *p, int n)
{
for(p=person;p<person+n;p++)
{
printf("%s 同学得票数为:",p->name);
printf("%d\n",p->votes);
}
printf(" ***************************!!完美分割线!!****************************\n\n");
}
void vote_result(struct people *p, int n)
{
int i , max=0 , k;
int str[100];
for(i=0;i<n;i++)
{
str[i]=(p++)->votes;
}
for(i=0;i<n;i++)
{
if(str[i]>max)
{
max=str[i];
k=i;
}
}
printf("本次投票选举结果,当选者为:%s\n\n",person[k].name);
}
|
|