プログラミング > BuzzFizz

#include <stdio.h>

int main(void)
{
    char const *n = "", *fz = "Fizz", *bz = "Buzz";
    char bzfz[10] ={'\0'}, num[10] = {'\0'};
    char const *fizz[] = {fz,n,n}, *buzz[] = {bz,n,n,n,n}, *number[] = {n,num};
    int l;
 
    for( int loop = 1; loop <= 20; loop++ )
    {
        l = sprintf( bzfz, "%s%s",
                buzz[loop%(sizeof(buzz)/sizeof(char*))],
                fizz[loop%(sizeof(fizz)/sizeof(char*))] );
        sprintf( num, "%d", loop );
        printf("%s%s\n", number[!l], bzfz );
    }
 
    return 0;
}

条件演算子の代わりに、配列とsizeofによる余剰でループを使用。

数字を出す条件はBuzzないしFizzを出力した文字数で判定。

最終更新:2013年08月23日 22:16
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。