PTA手指游戏C/C++

 

7-6 手指游戏

有时候,小诺诺会和爸爸玩手指游戏。游戏规则是:拇指 胜 食指, 食指 胜 中指,中指 胜 无名指,无名指 胜 小指,小指 胜 拇指;反之,食指 败给 拇指,中指 败给 食指,……;其它情况不分胜负,如拇指与中指不分胜负。拇指、食指、中指、无名指、小指分别用英文表示为:“thumb”、“forefinger”、“middle finger”、“third finger”、“little finger”。请你根据两人所出的手指判断小诺诺是否获胜。

输入格式:

首先输入测试组数T (0<T<20),然后输入T组测试数据;每组测试先输入2个字符串a,b(a,b值为描述中的手指的英文表示,以英文逗号“,”分隔),a为小诺诺出的手指,b为她爸爸出的手指。

输出格式:

对于每组测试,在一行上输出“Win”或“Lose”或“Draw”表示小诺诺胜或败或和(不分胜负)。

输入样例:

3
little finger,middle finger
thumb,forefinger
third finger,middle finger

下面代码显示段错误,为什么呀?????

#include<stdio.h>
#include<string.h>
int main()
{
    int n;
    scanf("%d",&n);
    char w;
    scanf("%c",&w);
    char Arr[n][10];
    int i = 0;
    char str1[n][20], str2[n][20];
    for (i = 0; i < n; i++)
    {
        char ch;
        int count1 = 0, count2 = 0;
        while (1)
        {
            scanf("%c", &ch);
            if (ch == ',')
            {
                str1[i][count1] = '\0';
                break;
            }
            str1[i][count1++] = ch;
        }
        while (1)
        {
            scanf("%c", &ch);
            if (ch == '\n')
            {
                str2[i][count2] = '\0';
                break;
            }
            str2[i][count2++] = ch;
        }
    }
    for (i = 0; i < n; i++)
    {
        if (
            (strcmp(str1[i], "thumb") == 0 && strcmp(str2[i], "forefinger") == 0)
            || (strcmp(str1[i], "forefinger") == 0 && strcmp(str2[i], "middle finger") == 0)
            || (strcmp(str1[i], "middle finger") == 0 && strcmp(str2[i], "third finger") == 0)
            || (strcmp(str1[i], "third finger") == 0 && strcmp(str2[i], "little finger") == 0)
            || (strcmp(str1[i], "little finger") == 0 && strcmp(str2[i], "thumb") == 0)
            )
            strcpy(Arr[i], "Win");
        else if (
            (strcmp(str1[i], "thumb") == 0 && strcmp(str2[i], "little finger") == 0)
            || (strcmp(str1[i], "forefinger") == 0 && strcmp(str2[i], "thumb") == 0)
            || (strcmp(str1[i], "middle finger") == 0 && strcmp(str2[i], "forefinger") == 0)
            || (strcmp(str1[i], "third finger") == 0 && strcmp(str2[i], "middle finger") == 0)
            || (strcmp(str1[i], "little finger") == 0 && strcmp(str2[i], "third finger") == 0)
            )
            strcpy(Arr[i], "Lose");
        else strcpy(Arr[i], "Draw");
        puts(Arr[i]);
    }
}

输出样例:

Draw
Win
Lose

楼主解决了吗,同问