お題:
FizzBuzzプログラムを作る。
①数を1からカウントしていく
②カウントする上限を尋ねる
③3の倍数の時、「Fizz」と表示
④5の倍数の時、「Buzz」と表示
⑤3と5の倍数の時、「FizzBuzz」と表示
プログラム実行例:
必須事項:
・配列を利用する事
ヒント:
・まず、配列をたくさん用意して、3の倍数、5の倍数、3と5の倍数、それ以外に分類します
・実行例は改行しましたが、あってもなくてもいいです
・配列に関しては第11回の予備知識を参考にしてください
解答は10月10日に掲載します。それまでにプログラムを作成し、
・プログラム文
・その実行ファイル
をメールに添付して以下のアドレスに送ってください。
解答、質問はこちらまで
cosmo-cleaner@za.pial.jp
---------------------------------------------------------------
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <stdio.h> int main () { |
実行例は上と同じです。
解説
今回使った変数とその役割
a[1000] i n k | 数字の属性を記憶する変数 カウントアップする数字そのもの、または倍数処理に利用 カウントアップする数字の上限 数字が10個並んだら改行するための変数 |
このプログラムは、数字と配列を対応させて、配列に数字の属性を印していきます。
例えば、数字の7なら配列a[7]に7の属性を印します。
この印付けを行っているのが6から17行目の命令です。
まず、a[0]からa[n]までの配列に0をとりあえず入れていきます。
次に、3の倍数の配列に1を入れていきます。
次に、5の倍数の配列に2を入れていきます。
最後に、3と5の倍数の配列に3を入れていきます。
つまり、
0の印が付いた数字はただの数、
1の印が付いた数字は3の倍数、
2の印が付いた数字は5の倍数、
3の印が付いた数字は3と5の倍数、
という事になります。
印をどんどん上書きしていきます。
赤いif文で数字ごとの印を判別してfizz,buzz,fizzbuzzを表示させています。
青いif文は改行用です。iをカウントアップして10の倍数に至った時に、改行を入れます。見やすくするために入れました。
答えられる範囲で質問いつでも受け付けます。
cosmo-cleaner@za.pial.jp
0 件のコメント:
コメントを投稿