| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 633 人关注过本帖
标题:AC水题,,,,c语言
只看楼主 加入收藏
dennisac
Rank: 2
等 级:论坛游民
帖 子:28
专家分:17
注 册:2011-10-27
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:6 
AC水题,,,,c语言
Description
这是一个很简单的纸牌游戏——比大小。每张纸牌都有一个花色:S、H、D和C,以及有一个牌面(6\7\8\9\T\J\Q\K\A)。
在游戏最开始的时候,会选择一种花色为王牌花色。
游戏是这样玩的:
玩家1和玩家2各出一张牌,看谁大。如果两张牌都不是王牌花色或则都是王牌花色,则牌面大的牌大,如果牌面一样大则一样大。若其中一张牌是王牌而另一张不是,则无论牌面如何都是王牌花色大。

Input
第一行一个数字n,代表数据组数(n <= 10)
对于每组数据,首先输入一个字符(S\H\D\C),表示王牌花色。
接下去一行有两张牌面,表示为牌面花色,如8D、9S等。



Output
对于每组数据,输出第一张牌是否比第二张牌大,若是则输出YES,否则输出NO



Sample Input
1
H
QH 9S
Sample Output
YES
求助啊~
搜索更多相关主题的帖子: 游戏 c语言 
2011-11-04 20:02
dennisac
Rank: 2
等 级:论坛游民
帖 子:28
专家分:17
注 册:2011-10-27
收藏
得分:0 
求教啊,,迅速的,,,
2011-11-04 20:16
dennisac
Rank: 2
等 级:论坛游民
帖 子:28
专家分:17
注 册:2011-10-27
收藏
得分:0 
各位神,谢谢 啊
2011-11-04 20:16
heroinearth
Rank: 10Rank: 10Rank: 10
来 自:云南曲靖
等 级:青峰侠
帖 子:430
专家分:1506
注 册:2011-10-24
收藏
得分:10 
我自己写的,你试试:
程序代码:
#include "stdio.h"
void main()
{
    char a,aa,b,k,x,xx,y;
    int i,n;
    printf("Sample Input \n");
    scanf("%d",&n);
    k=getchar();
    for(i=0;i<n;i++)
    {
        scanf("%c%c%*c%c%c",&a,&b,&x,&y);
        printf("Sample Output\n");

        switch (a)
        {
            case '6':aa='a';break;
            case '7':aa='b';break;
            case '8':aa='c';break;
            case '9':aa='d';break;
            case 'T':aa='e';break;
            case 'J':aa='f';break;
            case 'Q':aa='g';break;
            case 'K':aa='h';break;
            case 'A':aa='i';
        }
        switch (x)
        {
            case '6':xx='a';break;
            case '7':xx='b';break;
            case '8':xx='c';break;
            case '9':xx='d';break;
            case 'T':xx='e';break;
            case 'J':xx='f';break;
            case 'Q':xx='g';break;
            case 'K':xx='h';break;
            case 'A':xx='i';
        }
        if (b==y)
        {
          if(aa>xx)
             printf("YES");
          else
             printf("NO");
        }
        else if(b==k)
               printf("YES");
               else if(y==k)
                      printf("NO");
                     else
                     {
                         if(aa>xx)
                            printf("YES");
                         else
                            printf("NO");
                     }
                     printf("\n");
    }
           
}



 
2011-11-04 21:35
seeworld
Rank: 2
等 级:论坛游民
帖 子:19
专家分:39
注 册:2011-10-7
收藏
得分:5 
#include "stdio.h"
//#define DEBUG
/* 对一组数据处理,输入设定王牌花色和一组牌面数据,判断大小,如果大输出Yes,小输出No */
void judge()
{
    int i;
    char face1[2],face2[2];
    char max,temp,*ch;
    printf("请输入王牌花色(S、H、D和C):");
    max=getchar();
    fflush(stdin);
    if(max>='a' && max<='z')
        max=max-32;
    printf("请输入一组牌面:牌面(6\\7\\8\\9\\T\\J\\Q\\K\\A)+花色(S、H、D和C)\n");
    face1[0]=getchar();
    face1[1]=getchar();

    while((temp=getchar())==' ');
    face2[0]=temp;
    face2[1]=getchar();

    fflush(stdin);

    if(face1[1]>='a' && face1[1]<='z')
            face1[1]=face1[1]-32;
    if(face2[1]>='a' && face2[1]<='z')
            face2[1]=face2[1]-32;
    ch=&face1[0];
    for(i=0;i<2;i++) {
        switch(*ch) {
        case 't':
            *ch='9'+1;
            break;
        case 'T':
            *ch='9'+1;
            break;
        case 'j':
            *ch='9'+2;
            break;
        case 'J':
            *ch='9'+2;
            break;
        case 'Q':
            *ch='9'+3;
            break;
        case 'q':
            *ch='9'+3;
            break;
        case 'K':
            *ch='9'+4;
            break;
        case 'k':
            *ch='9'+4;
            break;
        default:
            break;
        }
        ch=&face2[0];
    }
#ifdef DEBUG
    putchar(face1[0]);
    putchar(face1[1]);
    putchar(face2[0]);
    putchar(face2[1]);
    putchar('\n');
#endif;
    /* 判断两个牌面的大小 */
    if(face1[1]==max && face2[1]==max || face1[1]!=max && face2[1]!=max)
        if(face1[0]>face2[0])
            printf("Yes!\n");
        else
            printf("No!\n");
    else
        if(face1[1]==max)
            printf("Yes!\n");
        else
            printf("No!\n");
}
int main(int argc, char* argv[])
{
    int n;
    printf("请输入数据组数:");
    scanf("%d",&n);
    fflush(stdin);
    while(n--)
        judge();
    return 0;
}
2011-11-04 22:19
草狼
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:577
专家分:1040
注 册:2010-4-6
收藏
得分:0 
这貌似是CF的题目啊

三种判断
if(a有王,b没王)
......
else if(a没王,b有王)
......
else {
    if(a牌面大于b)
        ......
     else
       ........
}
2011-11-04 23:17
huanega
Rank: 3Rank: 3
来 自:内蒙古
等 级:论坛游侠
帖 子:117
专家分:192
注 册:2011-11-4
收藏
得分:5 
#include <stdio.h>
#include<string.h>
#include <conio.h>
void main()
{
    int i,j,n;
    char s[10];
    char a[100],b[100],c[100];
    printf("输入对比组数:\n");
    scanf("%d",&n);
    printf("请输入王牌色(S\H\D\C):\n");
    scanf("%s",s);
    for(i=0;i<n;i++)
    {
        printf("请输入第%d组牌号(6\7\8\9\T\J\Q\K\A)、牌色:\n",i+1);
        scanf("%s%s",a,b);
        if(a[1]==s[0])
        {
        printf("yes\n");continue;
        }
        if(b[1]==s[0])
        {
        printf("no\n");continue;
        }
        if(strcmp(a,b)>0)
            printf("yes\n");
        if(strcmp(a,b)<=0)
            printf("no\n");
    }
    getch();
}

现写的,没限制输入范围,自己搞下吧。用goto就行。

兴趣是编程最好的老师
2011-11-05 13:39
快速回复:AC水题,,,,c语言
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.054989 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved