三种方法:1472 Problem B 选票统计(一)(结构体专题)——软四课堂小测试2——2017-12-22
2017-12-23 17:37
357 查看
题目描述
1483. 某单位进行选举,有5位候选人:zhang、wang、zhao、liu、miao。编写程序,统计每人所得的票数。要求每人的信息里包括两部分:name和votes,分别描述姓名和所得票数。每个人的信息用一个结构体来表示,5个人的信息使用结构体数组。
输入
首先输入一个整数n,表示一张选票,接下来n行,每行是一个由小写英文字母组成的字符串,表示以上5个候选人之一。
输出
输出5行,按zhang、wang、zhao、liu、miao的顺序输出5个候选人的姓名和所得票数,用空格隔开。
样例输入
8 zhang wang zhang zhao wang liu wang wang
样例输出
zhang 2 wang 4 zhao 1 liu 1 miao 0
方法一:按题上要求定义结构体
#include<stdio.h>#include<string.h>
struct candidate//candidate是“候选人”的意思
{
char name[16];
int votes;
}can[5]={{"zhang",0},{"wang",0},{"zhao",0},{"liu",0},{"miao",0}},t;//定义5个候选人的成员变量,并为其赋初始值,t用于接收选票
int main()
{
int n,i;
for(i=0;i<5;i++)//测试是否成功为结构体的成员变量赋初始值
{
//printf("候选人%d的名字是:%s,得%d票\n",i+1,can[i].name,can[i].votes);
}
scanf("%d",&n);
while(n--)
{
scanf("%s",t.name);
for(i=0;i<5;i++)//循环比较
{
if(!strcmp(can[i].name,t.name))
{
can[i].votes++;
}
}
}
for(i=0;i<5;i++)//循环输出
{
printf("%s %d\n",can[i].name,can[i].votes);
}
}
因为oj采用黑箱测试,所以我们即使不定义结构体,也是可以通过测试数据的。
方法二:不采用结构体,直接比较
#include<stdio.h>
#include<string.h>
int main()
{
char name[6];
int i,n,zhang=0,wang=0,zhao=0,liu=0,miao=0;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
memset(name,0,sizeof(name));
scanf("%s",name);
if(strcmp("zhang",name)==0)
{
zhang=zhang+1;
//printf("\n1\n");
}
if(strcmp("wang",name)==0)
{
wang=wang+1;
//printf("\n2\n");
}
if(strcmp("zhao",name)==0)
{
zhao=zhao+1;
//printf("\n3\n");
}
if(strcmp("liu",name)==0)
{
liu=liu+1;
//printf("\n4\n");
}
if(strcmp("miao",name)==0)
{
miao=miao+1;
//printf("\n5\n");
}
}
printf("zhang%d\nwang%d\nzhao%d\nliu%d\nmiao%d",zhang,wang,zhao,liu,miao);
return 0;
}
方法三:在比较时我们只要比较关键字就行了,没有必要非得两个字符串完全相等
相关文章推荐
- 1478 Problem A 总成绩排序(结构体专题)——软四课堂小测试2——2017-12-22
- 选票统计(一)(结构体专题)C语言
- 选票统计(结构体专题)
- 1188: 选票统计(一)(结构体专题)
- 选票统计(一)(结构体专题)
- 1474 Problem D查询记录(结构体专题)——软四课堂小测试——2017-12-21
- 1189: 选票统计(二)(结构体专题)
- 选票统计结构体专题
- Contest1100 - 软四课堂小测试4--问题 C: 回文数(函数专题)--2017-12-29
- 结构体定义的三种方法
- 测试程序运行时间的三种方法
- Android 程序员必须掌握的三种自动化测试方法
- maven忽略测试的三种方法
- java实现map和object互转的三种方法(未测试)
- 生成大量的测试数据的三种方法,1写sql,2工具plsql,3LoadRunner
- 内表行数统计的三种方法
- 测试三种控制台读取方法的速度快慢
- 网站用户体验可用性测试的三种方法
- 【转】统计报表的测试方法和策略要点
- 转 ABAP - 内表行数统计的三种方法