79 && roll 79 &-6ren">
gpt4 book ai didi

c++ - 在任何以 8 开头的数字之前选择 "a"或 "an"

转载 作者:搜寻专家 更新时间:2023-10-31 00:12:46 25 4
gpt4 key购买 nike

int roll = RANDOM(1, 100);
printf("You rolled %s %d.", (roll == 8 ? "an" : ((roll > 79 && roll < 90) ? "an" : "a")));

潜在输出:

You rolled a 12.
You rolled an 8.
You rolled an 84.
You rolled a 97.

为 1 到 100 之间以 8 开头的数字确定“a”或“an”的内联逻辑工作正常。

1:有没有更优雅的方式来做到这一点?

2:处理所有以 8 开头的整数值类型的最佳方法是什么?

最佳答案

(roll == 8 || roll > 79 && roll < 90 ? "an" : "a")对于初学者来说更简洁。

你可以有一个基于 2 字符缓冲区的解决方案 bufsnprintf(buf, 2, "%d", roll) ,但这似乎有点矫枉过正。正如评论中所指出的,仅查看第一个数字不足以保证语法完全正确,因此最好坚持使用特殊情况的析取。

关于c++ - 在任何以 8 开头的数字之前选择 "a"或 "an",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449911/

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