我有很长一段时间没有做 C 了,慢慢地回到了它。我制作了一个小游戏,现在正在经历“错误修复”并在这里和那里进行奇怪的调整。如果 printf() 语句中关于轮流的文本中的文本...

printf("CONGRATULATIONS!!\nYou won with %d turns remaining\n",turns);

现在这很好,直到 turns==1

有没有一种有效的方法可以根据 turn 变量的条件更改文本“turns”?或者我是否必须使用 if 语句(我已经有了一个解决方案,但我确信有一个更好的解决方案!)
if (turns==1)
{
  printf("CONGRATULATIONS!!\nYou won with %d turn remaining\n",turns);
}
else
{
  printf("CONGRATULATIONS!!\nYou won with %d turns remaining\n",turns);
}

对于真正的“菜鸟”问题,我很抱歉,但我不知道这样做的最有效方法是什么。

最佳答案

使用 conditional-operator 可能会满足您的需求

printf("CONGRATULATIONS!!\nYou won with %d turn%s remaining.\n",
  turns,
  turns==1 ?"" :"s");

或者只是做
printf("CONGRATULATIONS!!\nYou won with %d turn(s) remaining.\n",
  turns);

;-)

关于根据变量的值更改 printf() 中的文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36104777/

10-09 19:34