题解 | #扑克牌大小#

扑克牌大小

http://www.nowcoder.com/practice/d290db02bacc4c40965ac31d16b1c3eb

/*
*这个程序依然有很多的冗余
*优化的空间还很大
*由于是纯C写的所以比较麻烦
*/

include<stdio.h>

include<stdlib.h>

include<string.h>

include

include

using namespace std;

char max(char p)
{
char *str = p;
if(str == NULL)
return 0;
int len = strlen(str);
char *str3 = (char
)malloc(len);
char *str4 = p;
int len_b = 0;
int i=0;

//提前取出两副牌,这里的牌是没有换算的牌
int len_a = 0;
char *str6 = p;
while(*str6 != '-')
{
    len_a++;
    str6++;
}
char *str11 = (char*)malloc(len_a);
char *str22 = (char*)malloc(len - 1 -len_a);
strncpy(str11,str,len_a);
strncpy(str22,str+len_a+1,len-1-len_a);


//将10 换成A。
//同时还需要将A换成Y   2换成Z
i = 0;
int len_d = len;
while(len_d--)
{
    if('0' != *str4)
    {
        if('1' == *str4)
        {
            str3[i++] = 'A';
        }
        else if('A' == *str4)
            str3[i++] = 'Y';
        else if('2' == *str4)
            str3[i++] = 'Z';
        else
            str3[i++] = *str4;
    }
    str4++;
}

//printf("%s \n",str3);


str3[i] = '\0';
strcpy(str,str3);
free(str3);
len_a = 0;
char *str5 = p;
//算出两个分组的长度
while(*str5 != '-')
{
    len_a++;
    str5++;
}

//如果是对王
if(('j' == str[0] && 'o' == str[1])||('E' == str[len-2] && 'R' == str[len-1]))
{
    printf("joker JOKER");
    return 0;
}

//分别取出两个组的牌
len = strlen(str);
char *str1 = (char*)malloc(len_a);
char *str2 = (char*)malloc(len - 1 -len_a);

strncpy(str1,str,len_a);
strncpy(str2,str+len_a+1,len-1-len_a);

//如果牌数不一样,
if(len_a != len-1-len_a)
{

    //判断是否有炸弹
    if(7 == len_a)
    {
        printf("%s",str11);
        return 0;
    }else if(7 == len - len_a-1)
    {
        printf("%s",str22);
        return 0;
    }

    printf("ERROR");
    return -1;
}
//长度一样比较大小
else
{
    if(str1[0] > str[len_a+1])
    {

        printf("%s",str11);
    }
    else
    {
        printf("%s",str22);
    }

}

free(str1);
free(str2);
free(str11);
free(str22);
return 0;

}

int main()
{
char str = (char)malloc(54*4);
int i = 0;

cin.getline(str,54*4);
max(str);
free(str1);

return 0;

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务