天天看点

编程练习:数数小绵羊数数小绵羊

数数小绵羊

人与龙和谐相处的博克岛上正在举办喜羊羊版的魁地奇(魁地奇是《哈利·波特》系列中重要的空中团队对抗运动 Quidditch的中文译名,是魔法世界中由巫师们骑着飞天扫帚参加的球类比赛),龙骑士们通过抓羊和把羊投入篮筐来得分,如果能抓到皮肤黝黑的沸羊羊还能获得额外的分数奖励。

现在有 喜洋洋、美羊羊、沸羊羊、懒羊羊、慢羊羊五种羊。分别代表得分:5分、8分、10分、15分、20分。但是如果一支队伍抓到的羊的数目大于等于10,并且有抓到沸羊羊,那么该只队伍得分增加50。

身为年轻英勇的维京勇士小嗝嗝的你,虽然你没有参加这场比赛,但你能帮助你的Girl Friend阿丝翠德数一数她们队一共得了几分吗?

Input:

有多组数据测试,直到EOF。

第一行输入n ,代表接下来有n行输入,分表代表抓到的n只羊的名字。为了方便, 取“Pleasant goat”代表喜洋洋,取“Pretty goat”代表美羊羊,取“Athletic goat”代表沸羊羊,取“Lazy goat”代表懒羊羊,取“Slow goat”代表慢羊羊。1< n <= 10 ^ 4。

Output:

对于每组测试,输出“Case #k: ”,首先,k从1开始标号。

输出阿丝翠德她们队伍每次的总得分。

Sample Input:

5
Pleasant goat
Pretty goat
Athletic goat
Lazy goat
Slow goat
10
Pleasant goat
Pretty goat
Pleasant goat
Pretty goat
Pleasant goat
Pretty goat
Pleasant goat
Pretty goat
Athletic goat
Lazy goat
           

Sample Output:

Case #1: 58
Case #2: 127
           

解题思路:这题没啥好说的,浙工商oj的题目背景真的是......

代码:

#include<stdio.h>
#include<string.h>
int main(){
	int n;
	int k=0;
	while(scanf("%d",&n)!=EOF){
		k++;              //统计第几组数据 
		int number=n;     //记录下总共捉了几只羊 
		int sum=0;        //统计得分 
		int flag=0;       //判断是否抓到了沸羊羊   
		while(n--){
			char a[50];
			scanf("%s goat",a);
			if(strcmp(a,"Pleasant")==0) 
			sum=sum+5;
			else if(strcmp(a,"Pretty")==0)
			sum=sum+8;
			else if(strcmp(a,"Athletic")==0){
				sum=sum+10;
				flag=1;
			} 
			else if(strcmp(a,"Lazy")==0)
			sum=sum+15; 
			else
			sum=sum+20;
		} 
		if(number>=10&&flag==1)
			sum=sum+50;
	     printf("Case #%d: %d\n",k,sum);
	}
} 
           

继续阅读