c - 除了这个 if 语句之外,还有有效的发牌方法吗?

标签 c

我想发 52 张牌,编号从 1 到 52。为了将其分成 4 组,每组 13 张牌并将它们分开,我在下面的代码中添加了“-”以使它们看起来更好。另一组从卡号 14,27 和 40 开始。我找不到比 if 语句中的 2 OR 更好的方法。 我想问的是是否有比这更简单的方法。(if (cardNo==14 || cardNo==27 || cardNo==40)

while (cardNo<53)
{
    ...

    if (cardNo==14 || cardNo==27 || cardNo==40)
    {
        printf("------------\n");
    }

    printf("%-6s of %-6s\n ", face[column], suit[row]); 
    cardNo++;
}

最佳答案

使用模运算符:

if ((cardNo - 1) % 13 == 0)

关于c - 除了这个 if 语句之外,还有有效的发牌方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17411652/

相关文章:

c - 为什么 strcat 实现不会导致段错误?

c - spinlock_check()函数的使用

c++ - makefile:如何正确执行 “ranlib”操作

c - 从多个库动态加载时静态存储持续时间对象的唯一性保证

ios - 面试 - 将 C++ 库与 iOS 应用程序集成

c++ - 脱离套接字选择

c - C在重新分配后是否重用内存?

c++ - 什么是 __ext_vector_type__ 和 simd?

c - 用于获取数组中的数字元素或在变量上使用时仅返回 1 的通用宏?

C - 矩阵,随机数