三种方法:1472 Problem B选票统计(一)(结构体专题)——软四课堂小测试2——2017-12-22
来源:互联网 发布:知乎 国际政治 编辑:程序博客网 时间:2024/06/08 16:05
题目描述
1483. 某单位进行选举,有5位候选人:zhang、wang、zhao、liu、miao。编写程序,统计每人所得的票数。要求每人的信息里包括两部分:name和votes,分别描述姓名和所得票数。每个人的信息用一个结构体来表示,5个人的信息使用结构体数组。
输入
首先输入一个整数n,表示一张选票,接下来n行,每行是一个由小写英文字母组成的字符串,表示以上5个候选人之一。
输出
输出5行,按zhang、wang、zhao、liu、miao的顺序输出5个候选人的姓名和所得票数,用空格隔开。
样例输入
8zhangwangzhangzhaowangliuwangwang
样例输出
zhang 2wang 4zhao 1liu 1miao 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);
}
}
#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;
}
方法三:在比较时我们只要比较关键字就行了,没有必要非得两个字符串完全相等
#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;
}
方法三:在比较时我们只要比较关键字就行了,没有必要非得两个字符串完全相等
#include<stdio.h>
int
main()
{
int
n,a[5];
char
c[6];
memset
(a,0,
sizeof
(a));
scanf
(
"%d"
,&n);
while
(n--)
{
memset
(c,0,
sizeof
(c));
scanf
(
"%s"
,c);
if
(c[0]==
'z'
)
{
if
(c[3]==
'n'
)
{
a[0]++;
}
else
if
(c[3]==
'o'
)
{
a[2]++;
}
}
else
if
(c[0]==
'w'
)
{
a[1]++;
}
else
if
(c[0]==
'l'
)
{
a[3]++;
}
else
if
(c[0]==
'm'
)
{
a[4]++;
}
}
printf
(
"zhang %d\n"
,a[0]);
printf
(
"wang %d\n"
,a[1]);
printf
(
"zhao %d\n"
,a[2]);
printf
(
"liu %d\n"
,a[3]);
printf
(
"miao %d\n"
,a[4]);
}
/**************************************************************
Problem: 1472
User: 171530425
Language: C
Result: 正确
Time:0 ms
Memory:1092 kb
****************************************************************/
阅读全文
0 0
- 三种方法:1472 Problem B选票统计(一)(结构体专题)——软四课堂小测试2——2017-12-22
- 1478 Problem A总成绩排序(结构体专题)——软四课堂小测试2——2017-12-22
- 1474 Problem D查询记录(结构体专题)——软四课堂小测试——2017-12-21
- 1188: 选票统计(一)(结构体专题)
- 1189: 选票统计(二)(结构体专题)
- sdut 1294—选票统计
- 专题三Problem—1015
- 结构体A 选票统计
- 嵌入式课堂小测试(一)
- 专题四 Problem B
- 专题四 Problem B
- 专题三 Problem B
- 1180: 成绩统计(结构体专题)
- Problem G: B 结构体--统计投票
- Problem B: 小数计算——结构体
- Problem B: 小数计算——结构体
- 专题一 Problem B(I)
- ACM选票统计(C语言)
- extern关键字
- Spring Cloud 实践(一):Spring Cloud 介绍
- 如何安装WindowBuilder以及简单的使用
- EasyUI 手风琴
- Leetcode | K Inverse Pairs Array
- 三种方法:1472 Problem B选票统计(一)(结构体专题)——软四课堂小测试2——2017-12-22
- Tensorflow基础
- python中import理解
- SpringBoot拦截器和自定义注解验证是否登录
- 我在IT职场超15年:从程序员做到副总,送你21个超实用的职场法则!
- HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)
- Codeforces Round #350 (Div. 2)
- Mac下安装用于处理图片库Pillow
- cookie 和 session