わかりました、これは実際には C の質問ほど熱狂的な質問ではありません。
必要に応じて fizzbuzz を出力するための簡単なコードを C で書きました。
#include <stdio.h>
int main(void)
{
int n = 30;
int i;
for (i = 1; i<=n; i++)
printf("%s\n", (i % 15) == 0 ? "fizzbuzz" : (i % 5) == 0 ? "buzz" : (i % 3) == 0 ? "fizz" : i);
}
ここで、'i' が int であるのに対し、printf は文字列を受け入れるため、最後の else ステートメントは明らかに機能しません。私の質問は、「i」を文字列に変換するために適用できるキャストはありますか?
編集: 私が本当に求めているのは、この fizzbuzz テストが単一の print ステートメントを使用して実行できるかどうかです。それができるかどうかの好奇心以外に、単一の印刷ステートメントにしたい理由は特にありません。
EDIT2: 質問に答えて、これが私の実装です:
#include <stdio.h>
int main(void)
{
int i, n=30;
for (i = 1; i<=n; i++)
printf((!(i%3) || !(i%5)) ? "%s\n" : "%d\n", !(i % 15) ? "fizzbuzz" : !(i % 5) ? "buzz" : !(i % 3) ? "fizz" : i);
}