结构体数组认知及代码分享

结构体数组,是一个数组,每个元素都拥有结构体,且拥有结构体中的每一个元素;分享代码如下,这是一个选票系统,结构体内容为选民的名字和选民的票数;结构体的成员有3个...

#include<stdio.h>
#include<string.h>

struct XuanMin{
				char name[32];
				int tickets;
			}; 
int main()
{
	struct XuanMin xm[3];//结构体数组,成员有3; 
	struct XuanMin max;
	int len,i;
	int j;

	int Giveup =0;
	char tempName[32];
	len = sizeof(xm)/sizeof(xm[0]);
	i = 0;
	int Mark ;
	//初始化选民系统 
	for(i=0;i<len;i++){
		xm[i].tickets = 0;
		printf("请输入第%d个选民\n",i+1);
		scanf("%s",&xm[i].name);
	}
	
	//唱票环节 
	for(i=0;i<5;i++)
	{
		printf("请输入投票名字:\n");
		memset(tempName,'\0',sizeof(tempName));//清零 
		scanf("%s",&tempName);
		Mark = 0;//局部变量,用于比较名字是否对应,不对应则为0 
		for(j=0;j<len;j++)//两种情况;对应与没对应; 
		{
			if(strcmp(tempName,xm[j].name)==0)
			{
				xm[j].tickets++; 
				Mark = 1;
			}
		}	
		if(Mark == 0)
			{
				printf("找无此人,此票放弃。\n");
				Giveup++; 
			}
	}
	
	//公布总结果 
		printf("投票结束,选民一共有%d人,公布结果如下:\n",len);
	for(i=0;i<len;i++){
		printf("%s的票数为%d;",xm[i].name,xm[i].tickets);
	}
	putchar('\n');
	printf("无效的票数为%d",Giveup); 
	putchar('\n');
	max= xm[0];
	//公布当选人 
	for(i=0;i<len;i++)
	{
		if(max.tickets < xm[i].tickets)
		{
			max = xm[i];	//把最大的元素找出来 
		}
	}
	printf("%s选民当选.票数为%d\n",max.name,max.tickets);	
}

笔者认知还没很深,谢谢,有问题欢迎指出,谢谢

以下是运行结果结构体数组认知及代码分享

 

上一篇:Codeforce---C--penalty


下一篇:数据结构2链表