基礎プロI 100本ノック 初級編
各プログラムにおいて、特に指定が無い限りは入力値が指定された形式であるかどうかをチェックする必要はない(例えば整数型の値を入力させるところでアルファベットを入力された場合など)。
No. 20 割って掛ける
整数値を2つ入力させ、1つめの値を2つめの値で割った結果を表示し、続けてその結果に2つめの値を掛けた結果を表示するプログラムを作成せよ。計算はすべて整数型で行うこと(割り切れない場合は自動的に小数点以下が切り捨てられる)。
【実行例、下線部は入力例】 $ ./knock20 input 1st value: 10 input 2nd value: 3 result: 3 result: 9 $
割りきれない場合、2つめの値を掛けても最初の1つめの値に戻らないことに注意。
No. 21 5より大きく20より小さい
整数値を入力させ、その値が5よりも大きく、かつ、20よりも小さければOKと表示するプログラムを作成せよ。
【実行例、下線部は入力例】 $ ./knock21 input number: 10 OK $ ./knock21 input number: 5 $
No. 22 -10以下または10以上
整数値を入力させ、その値が-10以下、または、10以上であればOKと表示するプログラムを作成せよ。
【実行例、下線部は入力例】 $ ./knock22 input number: 10 OK $ ./knock22 input number: 0 $
No. 23 -5以上10未満
整数値を入力させ、その値が-5以上10未満であればOK、そうでなければNGと表示するプログラムを作成せよ。
【実行例、下線部は入力例】 $ ./knock23 input number: 0 OK $ ./knock23 input number: 10 NG $
No. 24 -10以上0未満、または、10以上
整数値を入力させ、その値が-10以上0未満、または、10以上であればOK、そうでなければNGと表示するプログラムを作成せよ。
【実行例、下線部は入力例】 $ ./knock24 input number: -5 OK $ ./knock24 input number: 10 OK $ ./knock24 input number: 5 NG $
No. 25 -10未満?、-10以上0未満?、0以上?
整数値を入力させ、その値が-10未満ならrange 1、-10以上0未満であればrange 2、0以上であればrange 3、と表示するプログラムを作成せよ。
【実行例、下線部は入力例】 $ ./knock25 input number: -15 range 1 $ ./knock25 input number: -10 range 2 $ ./knock25 input number: 0 range 3 $
No. 26 switch-case
整数値を入力させ、その値が1ならone、2ならtwo、3ならthree、それ以外ならothersと表示するプログラムをswicth-case文を使って作成せよ。
【実行例、下線部は入力例】 $ ./knock26 input number: 1 one $ ./knock26 input number: 2 two $ ./knock26 input number: 3 three $ ./knock26 input number: 0 others $
No. 27 1からnまでの和
整数値を入力させ、1からその値までの総和を計算して表示するプログラムを作成せよ。ただし、0以下の値を入力した場合は0と表示する。
【実行例、下線部は入力例】 $ ./knock27 input number: 10 sum = 55 $ ./knock27 input number: -2 sum = 0 $
No. 28 nの階乗
整数値を入力させ、その値の階乗を表示するプログラムを作成せよ。ただし、0以下の値を入力した場合は1と表示する。
【実行例、下線部は入力例】 $ ./knock28 input number: 10 factorial = 3628800 $ ./knock28 input number: -2 factorial = 1 $
No. 29 5つの合計
整数値を5回入力させ、それらの値の合計を表示するプログラムを繰り返しを使って作成せよ。
【実行例、下線部は入力例】 $ ./knock29 input number: 11 input number: 22 input number: 33 input number: 44 input number: 55 sum = 165 $
No. 30 棒グラフ
整数値を入力させ、その個数だけ*を表示するプログラムを作成せよ。入力値が0以下の値の場合は何も書かなくてよい。
【実行例、下線部は入力例】 $ ./knock30 input number: 7 ******* $ ./knock30 input number: 13 ************* $
*を改行せず入力値回だけ繰り返して表示し、繰り返しが終わったら改行\nだけ表示すればよい。
No. 31 棒グラフ改
整数値を入力させ、その個数だけ*を、5個おきに空白(スペース)を入れて表示するプログラムを作成せよ。入力値が0以下の値の場合は何も書かなくてよい。
【実行例、下線部は入力例】 $ ./knock31 input number: 7 ***** ** $ ./knock31 input number: 13 ***** ***** *** $
No.30に加えて、カウンタ変数を5で割った余りが「特定の値」の場合にスペースを表示するようにすればよい。「特定の値」が何であるかは、繰り返し回数の数え方に依存する。
No. 32 5の倍数でbar
1から20まで順に表示するが、5の倍数の場合は数字の代わりにbarと表示するプログラムを作成せよ。
【実行例】 $ ./knock32 1 2 3 4 bar 6 (途中、7から18まで省略) 19 bar $
No. 33 入力値抜き
整数値を入力させ、1から9まで、入力値以外を表示するプログラムを作成せよ。
【実行例、下線部は入力例】 $ ./knock33 input number: 7 1 2 3 4 5 6 8 9 $
No. 34 入力値抜き改
整数値を入力させ、1から9まで、入力値と入力値+1以外を表示するプログラムを作成せよ。入力値が9の場合は9のみ表示しない。
【実行例、下線部は入力例】 $ ./knock34 input number: 7 1 2 3 4 5 6 9 $
No. 35 配列要素の参照
{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、整数値を入力させ、要素番号が入力値である配列要素の値を表示するプログラムを作成せよ。入力値が配列の要素の範囲外であるかどうかのチェックは省略してよい。
【実行例、下線部は入力例】 $ ./knock35 input index: 0 array[0] = 3 $ ./knock35 input index: 5 array[5] = 1 $
配列の初期化は
int array[10] = {3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
のようにすればよい。
No. 36 続・配列要素の参照
{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、整数値を2つ入力させ、要素番号が入力値である2つの配列要素の値の積を計算して表示するプログラムを作成せよ。入力値が配列の要素の範囲外であるかどうかのチェックは省略してよい。
【実行例、下線部は入力例】 $ ./knock36 input index1: 3 input index2: 6 8 * 9 = 72 $
配列の初期化は
int array[10] = {3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
のようにすればよい。
No. 37 続々・配列要素の参照
{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、整数値を入力させ、要素番号が入力値の配列要素の値を参照し、さらにその参照した値を要素番号とする配列要素の値を参照して表示するプログラムを作成せよ。入力値が配列の要素の範囲外であるかどうかのチェックは省略してよい。
【実行例、下線部は入力例】 $ ./knock37 input index: 8 value = 1 $
配列の初期化は
int array[10] = {3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
のようにすればよい。
No. 38 さらに・配列要素の参照
{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、最初は参照する要素番号を0とし、この参照する要素番号の配列要素の値を表示し、次にその配列要素の値を次の参照する要素番号とし、この次の参照する要素番号の配列要素の値を表示し、さらにその配列要素の値を次の参照する要素番号とし、……を10回繰り返すプログラムを作成せよ。(具体的にどのような手順かは実行例を見て考えよう。)
【実行例】 $ ./knock38 3 8 5 1 7 6 9 2 0 3 $
配列の初期化は
int array[10] = {3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
のようにすればよい。結果は常に同じになるが固定的に値を表示するのではなく、指定された手順で表示するプログラムとすること。
No. 39 もっと・配列要素の参照
{3, 7, 0, 8, 4, 1, 9, 6, 5, 2}で初期化される大きさ10の整数型配列を宣言し、最初は参照する要素番号を0とする。この参照する要素番号の配列要素の値から次の要素番号の配列要素の値を引いた値を表示し、参照する要素番号を1増やす。この手順を9回繰り返すプログラムを作成せよ。(具体的にどのような手順かは実行例を見て考えよう。)
【実行例】 $ ./knock39 -4 7 -8 4 3 -8 3 1 3 $
配列の初期化は
int array[10] = {3, 7, 0, 8, 4, 1, 9, 6, 5, 2};
のようにすればよい。結果は常に同じになるが固定的に値を表示するのではなく、指定された手順で表示するプログラムとすること。