HDU 2537 8球胜负(模拟)

 1 /*这是一个模拟题,模拟一种台球的进球过程,并且判定胜负。
 2 对于输入的字符串,如果出现R则红方记1分,如果出现Y则黄方记1分。
 3 最后根据哪一方打进黑球和得分情况判定胜负。
 4 程序说明:
 5 这里给出两个C语言程序,一个没有使用数组(正解),另外一个是使用了数组来存储字符串。
 6 函数scanf()不会读走数后面的'\n',所有需要用函数getchar()读取'\n'(扔掉)。
 7 用函数scanf()读取整数时,会跳过前面的空格等,包括'\n'及'\t'。
 8 由于函数gets()不被推荐使用(容易造成存储越界访问),所有使用函数fgets()来读入一行字符串。
 9 符号常量N,如果定义为15(程序中是15 + 1),则会出现WA。也许是因为除了'\n',还需要考虑字符串结束符号'\0'。
10 题记:存储能省则省,只要不影响程序的简洁性。*/
11 #include<iostream>
12 #include<stdio.h>
13 #include<algorithm>
14 #include<iomanip>
15 #include<cmath>
16 #include<string.h>
17 //#define N 15+1
18 using namespace std;
19 int main()
20 {
21     int n;
22     //int i;
23     char a[20];
24     int nr,ny;
25     while(scanf("%d",&n)!=EOF && n)
26     {
27         getchar();               //
28         fgets(a,20,stdin);  //
29 
30         nr=0,ny=0;         //
31         int i;
32         for(i=0;i<n;i++)
33           {
34             //scanf("%s",&a[i]);
35             if(a[i]=='R')
36                 nr++;
37             else if(a[i]=='Y')
38                 ny++;
39           }
40         if((nr==7 && a[n-1]=='B')||(ny!=7 && a[n-1]=='L'))
41                 printf("Red\n");
42 
43         else if((ny==7 && a[n-1]=='L')||(nr!=7 && a[n-1]=='B'))
44                 printf("Yellow\n");
45 
46     }
47     return 0;
48 }

 

posted @ 2017-07-20 19:44  Roni_i  阅读(229)  评论(0编辑  收藏  举报