プログラミング実習II (2026) 課題
double 型の変数を int 型にキャストすることで小数点以下は切り捨てられる.
double x = 12.45;
int a = (int)x;
printf("%d\n", a ); // 出力結果は 12
これを利用して以下のプログラムを作成せよ.
ある銀行口座では,毎年3月15日の時点でその時の預金残高の 2.5% 相当額の利息がつく.ただし,利息部分の小数点以下は切り捨てられた上で残高に加算されることとする.
この口座に,毎年4月1日に 55,555 円を入金するとき、n = 1, ..., 20 について入金をはじめてから n 年後の3月31日の口座の預金残高を求めて表示するプログラムを作成せよ.また,利息が加算されない場合の預金残高も合わせて表示せよ.
表示例: (printf の書式は %2d %7d %7d) 1 56943 55555 2 115310 111110 3 175136 166665 4 236458 222220 5 299313 277775 6 363739 333330 7 429776 388885 8 497464 444440 9 566844 499995 10 637958 555550 11 710850 611105 12 785565 666660 13 862148 722215 14 940645 777770 15 1021105 833325 16 1103576 888880 17 1188109 944435 18 1274755 999990 19 1363567 1055545 20 1454600 1111100
キーボードから正の整数 n を受け取る.1 から t までの整数の 3 乗の和 (13+23+…+t3) が n を超えるような最小の t を求めて表示せよ.また,その t の値に対する上記の 3 乗の和も表示せよ.
n を超えない場合に計算を繰り返すようwhile 文で継続条件を与えるか,もしくは break 文を用いて n を超えた時点で終了すればよい.
例えば,n = 50 のとき, 13+23+33 = 36,13+23+33+43 = 100 であるため,t = 4, 3乗の和は 100 である.
(表示例) n = 1000 のとき,t = 8, 1296 n = 10000 のとき,t = 14 11025 n = 100000 のとき,t = 25 105625
5000円札を1000円札,500円玉,100円玉の 3 種類に両替するとき,紙幣数/硬貨数の組み合わせおよび組み合わせの数を求めて表示するプログラムを for 文の多重ループを使って作成せよ.
配列 a に格納された正の整数のデータの中央値を求めて表示せよ(データの個数は奇数個と仮定してよい).なお中央値とは,データの中で昇順に並べても降順に並べてもちょうど真ん中にくる値を指す.まず,sizeof 演算子を用いて,配列の要素数を求めた上で,中間値の順位を決定すればよい.さらに,データを整列(ソート)する.
(注: 中央値のみ表示すればよい) (要素数: 19) (降順: 98 91 88 87 84 81 78 76 75 69 64 63 55 53 47 44 42 29 13) 中央値 69
#include <stdio.h>
int main( void )
{
int a[] = { 75, 44, 98, 76, 87, 64, 88, 78, 55, 91, 69, 47, 84, 13, 63, 81, 29, 42, 53 };
return 0;
}
「キックオフ C言語」第 6 章 ソースコード6.5 を参考にして,素数を小さい方から 10個表示するプログラムを作成せよ.関数 is_prime(),関数 is_prime2(),関数 is_prime3() のいずれを用いても,結果が同じとなることを確認せよ.また,各関数についてどのような計算が行われているか説明せよ.
10 個の素数が発見されるまで計算を繰り返すようwhile 文で継続条件を与えるか,もしくは break 文を用いて 素数の個数が 10 個となった時点で終了すればよい.
2, 3, 5, 7, 11, 13, 17, 19, 23, 29
「キックオフ C言語」第 8 章 章末問題 7 (【2次元配列】141ページの…)に解答せよ.