结构体数组,是一个数组,每个元素都拥有结构体,且拥有结构体中的每一个元素;分享代码如下,这是一个选票系统,结构体内容为选民的名字和选民的票数;结构体的成员有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);
}
笔者认知还没很深,谢谢,有问题欢迎指出,谢谢
以下是运行结果