下のコードの空欄を埋めて、5つの整数を入力として受け取って、それらを逆順に表示するプログラムを作成せよ。(抜けている部分だけでなく、ファイル全体を提出すること。)
#include <stdio.h>
int main(void){
int a[5] = {0, 0, 0, 0, 0};
int b[5] = {0, 0, 0, 0, 0};
int i;
for (i = 0; i < 5; i++)
scanf("%d", &a[i]);
/* ここを埋める。 */
for (i = 0; i < 5; i++)
printf("%d\n", b[i]);
return 0;
}
締切: 10/15 23:59
参考: 教科書の演習問題5-4
行列を以下のように表現する。(隣り合う要素同士の区切りは空白で、行の終わりは改行で表現する。下の例は3行3列のケースである。)
1 15 4
12 6 9
13 3 16
2行3列の行列と3行2列の行列を入力として受け取って、その標準的な積を表示するプログラムを作成せよ。ただし、行列の各要素は整数であると仮定して良い。たとえば、
0 1 2
3 4 5
0 1
2 3
4 5
という入力を受け取った場合、出力は以下のようになる。
10 13
28 40
補足: これまでの課題では入力の区切りは改行でしたが、今回の課題では成分の区切りが空白となっています。「scanf」を用いて入力を読み込む場合、改行と空白の扱いにあまり違いはないので、行列の各要素の区切りが改行だと思ってプログラミングしても問題ありません。
締切: 10/15 23:59
参考: 教科書の演習問題5-10
自然数xを入力として受け取って、1からxまでの全整数の和を求めて返却する関数sumupを作成せよ。ただし、main関数は以下をそのまま使用すること。
#include <stdio.h>
int main(void){
int x = 0;
scanf("%d", &x);
printf("%d\n", sumup(x));
return 0;
}
締切: 10/15 23:59
参考: 教科書の演習問題6-5
5つの整数を入力として受け取って、その最大値を表示するプログラムmax_ofを作成せよ。ただし、「main」は以下をそのまま使用すること。
#include <stdio.h>
int main(void){
int a[5] = {0, 0, 0, 0, 0};
int i, max;
for (i = 0; i < 5; i++)
scanf("%d", &a[i]);
max = max_of(a, 5);
printf("%d\n", max);
return 0;
}
締切: 10/15 23:59
参考: 教科書の演習問題6-8
正の整数nを入力として受け取って、n番目のフィボナッチ数を表示するプログラムを再帰関数呼び出しを利用して作成せよ。ただし、大きな数に対して計算を実行出来る必要はなく、20くらいの整数まで値を正しく計算できれば良いものとする。ここでは、1番目のフィボナッチ数は1、2番目のフィボナッチ数も1とする。再帰関数呼び出しを利用していない課題の提出は認めない。
締切: 10/15 23:59
参考: 教科書8-4章
正の整数2つを入力として受け取って、それらの最大公約数を表示するプログラムを再帰関数呼び出しを利用して作成せよ。ただし、「main」は以下をそのまま使用すること。再帰関数呼び出しを利用していない課題の提出は認めない。
#include <stdio.h>
int main(void){
int x = 1, y = 1;
scanf("%d %d", &x, &y);
printf("%d\n", gcd(x, y));
return 0;
}
締切: 10/15 23:59
参考: 教科書8-4章
標準入力全体(ASCII外の文字は含まれないが、改行や空白は複数あるかも知れない)における文字「x」の数をカウントするプログラムを作成せよ。
補足: ターミナル上でプログラムに入力の終わりを伝えるには、controlキーを押しながらdキーを押します。(この際、環境によってはDがターミナルに表示されますが、それは無視して良いものとします。)
注1) 文字数制限なし + 実行時間は気にしないものとする。
注2) 改行やタブの指定は「\n」や「\t」を用いること。
締切: 10/15 23:59
参考: 教科書の演習問題8-9