结构体类型简单应用——选票统计(适合C语言初学者)

题目描述

某班进行班长选取,每人可投一票,候选人有三人:zhouziyou,niujinhang,pangbo。

对此次选举结果进行统计并按照从大到小排列

#include<stdio.h>
#include<string.h>
#define N 3//设三个人投票(根据需求改票数)
int main()
{
	struct student
	{
		char name[20];//人名最多19个字符,留一个给'\0',否则数据溢出
		int count;//票数

	};
	struct student s[3]={"zhouziyou",0,"niujinhang",0,"pangbo",0},t;//t是下面要做中间变量要用的

	int i,j;

	char str[10];
				
	for(i=0;i<N;i++)
	{
		scanf("%s",str);//投票

		for(j=0;j<=2;j++)
		{
			if(strcmp(str,s[j].name)==0)//检票
				s[j].count++;
		}

	}
//冒泡排序
	for(i=1;i<N;i++)//控制排列N-1次最后一个自动排好
	{
		for(j=0;j<N-i;j++)//控制将小的数据向后移动,移动后的数据不用再进行操作,故只需排列前N-j个元素
			if(s[j].count<s[j+1].count)
			{
				t=s[j];//s[]包含多个结构体成员,故中间变量也要是结构体类型
				s[j]=s[j+1];
				s[j+1]=t;
			}
	}

	for(i=0;i<=2;i++)
	printf("%s %d\n",s[i].name,s[i].count);//控制依次输出结构体变量

	return 0;
}

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值