ここまでのまとめ

今週は,これまでのまとめとして,練習問題を課す.
各自でしっかりと復習しよう.

特に,自分で理解が不十分だと思う箇所があれば,各自でテキストおよび参考書を調べるか,または,積極的に質問をすること.

それぞれの単元をよく理解したうえで,それらを組み合わせ,順序立て,処理手順をロジカルに記述する訓練をしよう.
試行錯誤の数だけ上達します!

復習用キーワード

以下の項目がしっかり理解出来ていますか.
理解できていない項目はありませんか?


また,プログラムを書くためには,文法を知っているだけでは不十分です.

などについても,よく理解していなければなりません.

練習問題(3限 授業時間内に実習)

以下の問それぞれに対応するプログラムを作成しなさい.
自習用なので,提出は不要

問題1

10個の数値を入力し,そのうち奇数の和と,偶数の和に分けてそれぞれ出力.

実行例(計算結果は適当な値である.)
入力: 1 8 3 7 4 11 9 -3 8 4
出力: 15 24

入力: 2 88 40 23 18 51 34 55 32 100
出力: 151 466

問題2

下記のように,文章内の(スペース文字で区切られた)単語の先頭の文字のみを小文字に変換し,残りは大文字に変換する関数 convert を作成せよ.
文字列の長さは最大で100文字程度とし,変換前後の文字列を画面に表示せよ. main関数は以下の通りとし,変更しないこと.

ヒント1:スペース文字は,' 'または該当する文字コードの値を参照.
ヒント2:大文字,小文字は文字コード値のどの範囲か?

実行例1
src:HELLO! I AM a COMputer.
dst:hELLO! i aM a cOMPUTER.

実行例2
src:PPAP
dst:pPAP

#include ...

bool IsOomoji(???)
{
    // このような関数を作って置くと便利.
    // またはライブラリ関数を探す?
}

void convert(...)
{
    ....
}

int main(void)
{
    char str[101];    // 100文字+ヌル文字分
    scanf("%[^\n]%*c", str);    // スペースを含めて1行入力

    printf("src:%s\n", str);
    convert(str);
    printf("dst:%s\n", str);

    return 0;
}

問題3

まず配列の要素数(整数,最大で100とする)を入力し, 続いて配列データ(実数)を入力すると,配列内の値の平均値を計算して表示するプログラムを作成せよ.

(いずれも出力の値は正しいとは限らない)	
実行例1
input:
5
1.0 2.0 3.0 4.0 5.0
output
3.0

実行例2
input:
90
-100.5 329.3 224.8 , ... 992.3
output:
123.4

実行例3
input:
200
ERROR! Too much datacount.

問題4

キーボードから 2 より大きい整数 n を入力すると,2 から n までの間の素数の個数を表示したうえで,それらの和を表示せよ.
n が 2 より大きい数でない場合はエラーメッセージを表示して,正しい値が入力されるまで,繰り返し再入力させるようにせよ.

実行例:

n=? 2
ERROR!

n=? -2
ERROR!

n=? 10

number of prime number is 4
sum is 17