题目描述
小李和小王玩扑克比大小游戏,扑克牌的大小依次为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;
}
在这个示例代码中,我们首先定义了两个字符变量card1
和card2
来存储输入的扑克牌。然后,我们使用scanf()
函数读取两个字符作为输入。
接下来,我们使用switch语句来比较两张扑克牌的大小。根据第一张扑克牌的值,我们分别处理每种情况。在每个case中,我们通过比较第二张扑克牌的值来确定结果。根据比较结果,我们将结果存储在变量result
中。
最后,我们再次使用switch语句来根据result
的值输出相应的结果。
请注意,我们在代码中添加了一个特殊的情况-2
,表示错误的输入。如果第一张扑克牌的值不在预定义的范围内(A、K、Q、J、0、9、8、7、6、5、4、3、2),则将结果设置为-2
,并输出”error”。这样可以处理非法输入的情况。
© 版权声明
本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
THE END