プログラミング実習II (2026) 課題

[T3] 第4章 制御の流れ(2)

(T3_1)

[リスト 4.14] を入力し,コンパイル・実行し,計算結果を確認せよ.次にこのプログラムを("間違いバージョン"の while 文と,最後の printf 文を削除した上で)以下のように変更せよ.

表示された total の値が正しい値であること,および様々な n の値を試して,すべての場合について n を超えた時点で終了していることを確認すること.

(表示例)n = 20 のとき
   1     1
   2     3
   3     6
   4    10
   5    15
   6    21
《補足》 以下に必ず目を通すようにして下さい.
(T3_2)

[リスト 4.12]を入力し,実行せよ.さらに,数当てゲームに正解した場合には「 * 〇回目で大正解 * 」と表示されるように変更したプログラムを提出せよ.

[リスト 4.12] の 5 行目のコメント部分に以下の誤植があるため注意すること.
(誤)int num = 2985; // 当たりの回数 → (正)int num = 2985; // 当たりの数値
(T3_3)

[リスト 4.13] では,i = 1, 2, ..., 10 について,i の 逆数,2乗,平方根を表示するプログラムが示されている.本問では,これと同じ表示を行う for 文を用いたプログラムに書き換えることとする.

以下の ???? の部分に数式を補ってプログラムを完成せよ.ただし,本問では新たな変数は定義しないこと.

		printf("%5.1f   %5.3f   %6.1f   %6.4f \n", val, ????, ????, ???? );
《補足》以下に必ず目を通して下さい.
(T3_4)

下の例題プログラムは,for 文による2重ループを使っている.これを入力,コンパイル,実行し,どのような結果が得られるか調べよ.特に ij がどのように増える(減る)かを観察し,考察欄に記せ.

#include <stdio.h>

int main(void)
{
	int i, j;

	for ( i = 0; i < 4; i++ ){
		for ( j = 0; j < 4; j++ ){
			printf( "%d + %d = %d\n", i, j, i + j );
		}
	}
	printf( "\n");

	for ( i = 0; i < 4; i++ ){
		for ( j = i+1; j < 4; j++ ){
			printf( "%d + %d = %d\n", i, j, i + j );
		}
	}
	printf( "\n");

	for ( i = 0; i < 4; i++ ){
		for ( j = 0; j < i+1; j++ ){
			printf( "%d + %d = %d\n", i, j, i + j );
		}
	}
	printf( "\n");

	for ( i = 3; i >= 0; i-- ){
		for ( j = i; j >= 0; j-- ){
			printf( "%d + %d = %d\n", i, j, i + j );
		}
	}

	return 0;
}
(T3_5)

「キックオフ C言語」の p. 1046.5節 練習問題 3([2重ループ,回数の変化するループ],2重ループを用いて…)を解答せよ.利便性のため,問題文(一部,改変あり)を以下に掲載する.

キーボードから正の整数 n を受け取る. 2 重ループを用いて * の文字を並べて,縦横 n 文字の * からなる長方形を表示せよ.また同様に、縦横 n 文字の直角三角形を表示せよ.以下は n = 5 の出力例である.

*****
*****
*****
*****
*****
*
**
***
****
*****

(直角三角形について授業中の解答が難しい場合は,長方形のみを表示するプログラムを提出して構わない.この場合,後で直角三角形に対するプログラムも作成しておくこと)