C语言 结构体练习之投票

/*评选优秀学生*/
#include
#include
#include

#define VOTES 25//总票数/人
#define CANDIDATES 5//候选人
//模拟投票函数原型
void vote();
typedef struct{
	char name[10];
	int age;
	char gender;
	int votes;
}CANDIDATE;

CANDIDATE cdd[CANDIDATES]={{"Zhang",18,'m',0},{"Wang",19,'m',0},{"Zhao",19,'f',0},{"Li",17,'m',0},{"Qian",18,'f',0}},*p_cdd = cdd;

void main(){
	//投票开始
	vote();
	//打印测试
	for(;p_cdd < cdd + CANDIDATES;p_cdd++){
		printf("name : %s\nage : %d\ngender : %c\nvotes : %d\n",p_cdd->name,p_cdd->age,p_cdd->gender,p_cdd->votes);
		printf("----------------------------------------------\n");
	}
	//
	p_cdd = &cdd[0];
	int temp = 0;
	int votes_max = p_cdd->votes;
	//找出最高得票
	for(int i = 1; i < CANDIDATES;i++){
		if(	votes_max < (p_cdd+i)->votes ){
			votes_max = (p_cdd+i)->votes;
			temp = i;
		}
	}

	//打印最高得票者
	printf("最高得票者如下:\n");
	for(;p_cdd < cdd + CANDIDATES;p_cdd++){
		if(p_cdd->votes == votes_max)
			printf("%s\n",p_cdd->name);
	}
	
}

//模拟投票函数实现
void vote(){
	//调用库函数random模拟投票
	//设置随机数种子
	srand(time(0));
	for(int i = 1;i <= VOTES;i++){
		(p_cdd+rand()%CANDIDATES)->votes++;
	}
}

你可能感兴趣的:(C语言)