C语言编写程序实现扑克比大小游戏

题目描述

小李和小王玩扑克比大小游戏,扑克牌的大小依次为A,K,Q,J,0(表示10),9,8,7,6,5,4,3,2. 如何出现其他扑克牌的输入,则输出error.

input:

输入两个字符,分别代表两张扑克牌

output:

输出:1(当第一张扑克牌大于第二张)

输出:0(当第一张扑克牌等于第二张)

输出:-1(当第一张扑克牌小于第二张)

源代码

你可以使用C语言的switch语句来实现这个功能。首先,你需要读取两个字符作为输入,然后根据扑克牌的大小关系输出相应的结果。

以下是一个示例代码:

#include <stdio.h>

int main() {
    char card1, card2;
    int result;

    // 读取输入
    printf("请输入两张扑克牌:");
    scanf("%c %c", &card1, &card2);

    // 比较扑克牌大小
    switch (card1) {
        case 'A':
            result = 1;
            break;
        case 'K':
            if (card2 == 'A')
                result = -1;
            else if (card2 == 'K')
                result = 0;
            else
                result = 1;
            break;
        case 'Q':
            if (card2 == 'A' || card2 == 'K')
                result = -1;
            else if (card2 == 'Q')
                result = 0;
            else
                result = 1;
            break;
        case 'J':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q')
                result = -1;
            else if (card2 == 'J')
                result = 0;
            else
                result = 1;
            break;
        case '0':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q' || card2 == 'J')
                result = -1;
            else if (card2 == '0')
                result = 0;
            else
                result = 1;
            break;
        case '9':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q' || card2 == 'J' || card2 == '0')
                result = -1;
            else if (card2 == '9')
                result = 0;
            else
                result = 1;
            break;
        case '8':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q' || card2 == 'J' || card2 == '0' || card2 == '9')
                result = -1;
            else if (card2 == '8')
                result = 0;
            else
                result = 1;
            break;
        case '7':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q' || card2 == 'J' || card2 == '0' || card2 == '9' || card2 == '8')
                result = -1;
            else if (card2 == '7')
                result = 0;
            else
                result = 1;
            break;
        case '6':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q' || card2 == 'J' || card2 == '0' || card2 == '9' || card2 == '8' || card2 == '7')
                result = -1;
            else if (card2 == '6')
                result = 0;
            else
                result = 1;
            break;
        case '5':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q' || card2 == 'J' || card2 == '0' || card2 == '9' || card2 == '8' || card2 == '7' || card2 == '6')
                result = -1;
            else if (card2 == '5')
                result = 0;
            else
                result = 1;
            break;
        case '4':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q' || card2 == 'J' || card2 == '0' || card2 == '9' || card2 == '8' || card2 == '7' || card2 == '6' || card2 == '5')
                result = -1;
            else if (card2 == '4')
                result = 0;
            else
                result = 1;
            break;
        case '3':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q' || card2 == 'J' || card2 == '0' || card2 == '9' || card2 == '8' || card2 == '7' || card2 == '6' || card2 == '5' || card2 == '4')
                result = -1;
            else if (card2 == '3')
                result = 0;
            else
                result = 1;
            break;
        case '2':
            if (card2 == 'A' || card2 == 'K' || card2 == 'Q' || card2 == 'J' || card2 == '0' || card2 == '9' || card2 == '8' || card2 == '7' || card2 == '6' || card2 == '5' || card2 == '4' || card2 == '3')
                result = -1;
            else if (card2 == '2')
                result = 0;
            else
                result = 1;
            break;
        default:
            result = -2; // 错误输入
            break;
    }

    // 输出结果
    switch (result) {
        case 1:
            printf("输出:1\n");
            break;
        case 0:
            printf("输出:0\n");
            break;
        case -1:
            printf("输出:-1\n");
            break;
        case -2:
            printf("输出:error\n");
            break;
    }

    return 0;
}

在这个示例代码中,我们首先定义了两个字符变量card1card2来存储输入的扑克牌。然后,我们使用scanf()函数读取两个字符作为输入。

接下来,我们使用switch语句来比较两张扑克牌的大小。根据第一张扑克牌的值,我们分别处理每种情况。在每个case中,我们通过比较第二张扑克牌的值来确定结果。根据比较结果,我们将结果存储在变量result中。

最后,我们再次使用switch语句来根据result的值输出相应的结果。

请注意,我们在代码中添加了一个特殊的情况-2,表示错误的输入。如果第一张扑克牌的值不在预定义的范围内(A、K、Q、J、0、9、8、7、6、5、4、3、2),则将结果设置为-2,并输出”error”。这样可以处理非法输入的情况。

© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享