gpt4 book ai didi

c - C语言扑克软件原型(prototype),找出顺子功能的问题

转载 作者:行者123 更新时间:2023-11-30 14:26:44 26 4
gpt4 key购买 nike

我要疯了。我正在编写一个源代码,从洗好的牌中选择 5 张扑克牌,并识别是否有一对、双对、三对等。然而,处理寻找顺子的功能给我带来了困难。我必须重写这个,因为我之前没有考虑过 Ace 可以取 1 也可以取 11 这一事实。这是来源:

int hasStraight(const int wFirstFace[],int size)
{
int *firstfacePtr,i,j;
firstfacePtr=wFirstFace;

for(i=0;i<=1;i++)
{
for(j=0;j<=size-2;j++)
{
if (firstfacePtr[j]!=firstfacePtr[j+1]-1 && i==0)
break;
else if (firstfacePtr[j]!=firstfacePtr[j+1]-1 && i==1)
return 0;
else if (j==3 &&firstfacePtr[j]==firstfacePtr[j+1]-1)
printf("Scala!\n");
return 1;
}
if (firstfacePtr[0]==0)
firstfacePtr[0]=13;
bubble(firstfacePtr,size); /*bubble goes through an array
and put it in ascending order*/
}

}

注:wFirstFace是一个包含5个整数的数组; size 是一个整数,等于 5。我尝试声明 wFirstFace={0,1,2,3,4} 以检查代码是否有效。然后,内部的“for”循环在一个循环后结束,函数返回0,我什至不知道为什么或在哪里。在这个凌乱的源代码中我在哪里犯了错误?

最佳答案

我可以看到有几个大括号不匹配。

1 - 这将始终返回 1;。您想在最后一个 else if 中添加 { } 吗?

    for(j=0;j<=size-2;j++)
{
if (firstfacePtr[j]!=firstfacePtr[j+1]-1 && i==0)
break;
else if (firstfacePtr[j]!=firstfacePtr[j+1]-1 && i==1)
return 0;
else if (j==3 &&firstfacePtr[j]==firstfacePtr[j+1]-1)
printf("Scala!\n");
return 1;
}

2 - 您希望 bubble()for(i= 循环的所有迭代中执行吗?还是仅在 if (firstfacePtr[0 ]==0) 是真的吗?

    if (firstfacePtr[0]==0)
firstfacePtr[0]=13;
bubble(firstfacePtr,size); /*bubble goes through an array and put it in ascending order*/

关于c - C语言扑克软件原型(prototype),找出顺子功能的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8673575/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com