根据变量的值更改printf()中的文本

Mat*_*tra 4 c printf

我很久没有做过C而慢慢回到它身上.我做了一个小游戏,现在正在进行"修复错误"并在这里和那里进行奇怪的调整.如果printf()关于转弯的陈述中的文字,我有一个问题......

printf("CONGRATULATIONS!!\nYou won with %d turns remaining\n",turns);
Run Code Online (Sandbox Code Playgroud)

现在这很棒,直到turns==1.

是否有一种有效的方法可以根据turn变量的条件更改文本'turn'?或者我是否必须使用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);
}
Run Code Online (Sandbox Code Playgroud)

对不起真正的'noob'问题,但我坚持认为这是最有效的方法.

alk*_*alk 6

使用条件运算符可能会满足您的需求

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

或者只是做

printf("CONGRATULATIONS!!\nYou won with %d turn(s) remaining.\n",
  turns);
Run Code Online (Sandbox Code Playgroud)

;-)