特集PC技術

納得C言語

 

[第12回]演習問題Ⅲ

第11回まで学習した内容を使い、演習問題を行います!


1 うるう年判定プログラム

うるう年を判定する自作関数を作ってみよう
但し、西暦を格納する変数はグローバル変数で宣言してください

結果1 2007年の場合

2007年はうるう年ではない

結果2 2004年の場合

2004年はうるう年

結果3 2000年の場合

2000年はうるう年ではない


演習問題Ⅲ 第1問のヒント


1 うるう年判定プログラム

1.うるう年を求める計算は「西暦年が4で割り切れるかつ100で割り切れないまたは400で割り切れる」である
2."かつ""または"を表現するには論理演算子を使います
3.グローバル変数は関数の外側で宣言します


演習問題Ⅲ 第1問の解答


1 うるう年判定プログラム


演習問題Ⅲ 第2問

第11回まで学習した内容を使い、演習問題を行います!


2 複数文字列の格納

文字列を複数入力して、逆順に表示するプログラムを作ってみよう
但し、「END」と入力すると、プログラムを終了させるようにしてください。
また、表示を行うときには「END」を表示しないようにしよう

結果

複数文字列を逆順で表示する


演習問題Ⅲ 第2問のヒント


2 複数文字列の格納

1.文字列型の変数を複数使う時はchar型の2次元配列を宣言します
2.文字列の入力はscanf( )とgets( )を使います
3.「END」と入力されるのを調べるにはstrcmp( )関数を使います


演習問題III 第2問の解答


2 複数文字列の格納


演習問題Ⅲ 第3問

第11回まで学習した内容を使い、演習問題を行います!


3 10人分のテスト点数

10人分のテストの点数を入力し、点数と順位を表示するプログラムを作ってみよう
但し、点数の入力範囲は0~100とし、それ以外は結果の様に再入力を求めるようにすること

10人分の点数と順位を格納する下表のような2次元配列を用意しよう。

a [0] [1]
[0] 点数 順位
[1] 点数 順位
[2] 点数 順位
[3] 点数 順位
[4] 点数 順位
[5] 点数 順位
[6] 点数 順位
[7] 点数 順位
[8] 点数 順位
[9] 点数 順位

1)ユーザ入力から10人分の点数を格納します。
2)配列a[x][1](xは0~9)の中身を1で初期化します。
3)順位のつけ方は、前者と後者の点数を比較し、後者が小さい場合に後者の順位を1増やします。
4)これをa[0][0]~a[9][0]まですべて比較していきます。

結果

10人分の点数を入力し、点数と順位を表示する


演習問題Ⅲ 第3問のヒント


3 10人分のテスト点数

1.10人分の点数を格納する変数を宣言する時は、10個の変数を宣言するのではなく、配列を用いて宣言する
2.入力エラー時に継続条件の値をインクリメントせずに再度入力を求めさせる時は反復構造の中でcontinueを使います
3.[ 63]のように表示するにはprintf( )の指定文字列「%d」の書式を「%*d」に変える(*はどの数字を入れるか考えよう。今回は3桁使用するから・・・)
4.0~100までの入力範囲を作る方法を忘れた人はこの例題を見て確認!


演習問題Ⅲ 第3問の解答


3 10人分のテスト点数


演習問題Ⅲ 第4問

第11回まで学習した内容を使い、演習問題を行います!


4 10人分のテスト点数(平均点表示付)

(3)で作ったプログラムに平均点を表示する自作関数を作ってみよう
また、余裕のある人は自作関数内に何人目が平均点以下か点数もつけて表示させてみましょう

結果

10人分の点数を入力し、点数と順位と平均点を表示する


演習問題Ⅲ 第4問のヒント


4 10人分のテスト点数(平均点表示付)

1.平均値の求め方を忘れた人はこの例題を見て確認!


演習問題Ⅲ 第4問の解答


4 10人分のテスト点数(平均点表示付)

コメントの投稿


画像の中に見える文字を入力してください。

トラックバックURL

http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1101

pagetopこのページの先頭へ戻る