問題 1 キーボードから 10 人の成績(100 点満点の整数値)を配列に読み込み、1) 平 均点、2) 分散、及び 3) 標準偏差を計算・表示するプログラム % ./a.out 学籍 No. 0 の成績:80 学籍 No. 1 の成績:70 学籍 No. 2 の成績:95 学籍 No. 3 の成績:90 ... 学籍 No. 8 の成績:90 学籍 No. 9 の成績:40 平均点は 85.5 点です。 分散は 246.25 です。 標準偏差は 15.69 点です。 % データ {n1, n2, n3, n4, n5, ..., nk} の 平均は 分散は 標準偏差は 1 問題 2 キーボードからアルファベットを 1 文字ずつ読み込み、入力したアルファベットの数 を数えるプログラム。入力の中断は Ctrl-D とする。数字や記号は無視する。 ただし、大文字と小文字の区別はしない。 % ./a.out アルファベットを入力(Ctrl-D で終了) We had the world cup last year. [Enter] [Crtl-D] a は 3 文字。 b は 0 文字。 c は 1 文字。 ... z は 0 文字。 % 26 個のアルファベットの出現回 数を数える配列を用いる。 int count[26]; 2 問題 3 3 行 3 列の行列を入力し、その和を計算するプログラム。 % ./a.out 行列 A の成分を入力せよ。 a[0][0] = 3 a[0][1] = 4 a[0][2] = 5 a[1][0] = -3 a[1][1] = 0 ... 行列 B の成分を入力せよ。 b[0][0] = 1 b[0][1] = -6 ... 行列 A 4 -2 -2 2 1 0 n × n 行列 A = (aij), B = (bij) について、和 C = A+B の (i, j) 成分は cij = aij + bij + B は 6 4 3 3 問題 4 成績のデータから、各人の合計点および全体の平均点を計算するプログラムを作れ。 平均点は、少数以下を四捨五入すること。 成績は初期値として与えておく。 int seiseki[6][4] = {85,70,77,0}, {68,75,63,0},{55,80,60,0}, {75,63,91,0},{47,53,70,0}, {0,0,0,0}}; 合計と平均点を格納する場所を 用意しておく。初期値として0。 情報 数学 英語 85 70 77 68 75 63 55 80 60 75 63 91 47 53 70 % ./a.out 情報 数学 英語 合計 85 70 77 232 68 75 63 206 55 80 60 195 75 63 91 229 47 53 70 170 66 68 72 206 4 エラトステネスのふるい N 以下の素数を求めるアルゴリズムとして、エラトステネスのふるいがある。 アルゴリズム ◎ 2 から N までの数を並べる。全ての数に印(例えば int 1 )を割り振っておく。 ◎ 2 の倍数(2 自身は除く)に印(例えば int 0)を割り振る。 ◎ 印 1 が着いている最小の数は 3 である。3 の倍数(3 自身は除く)に印(0)を割り振る。 ◎ 印 1 が着いている最小の数は 5 である。5 の倍数(5 自身は除く)に印(0)を割り振る。 ◎ 印 1 が着いている最小の数は 7 である。7 の倍数(7 自身は除く)に印(0)を割り振る。 ... ◎ 以上の操作を繰り返す。最後に印 1 が着いている数が素数である。 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ... 全ての数に印を付ける 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ... 2 を除く偶数(2の倍数)を候 補から除く 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, ... 奇数かつ 3 の倍数は素数ではない ので 3 の倍数を除く 5 問題 5 エラトステネスのふるいを用いて、1000 以下の素数を全て表示せよ。 ただし表示形式として、1 行に 10 個ずつ表示されるようにすること。 % ./a.out 2 3 5 7 11 13 17 19 23 29 31 37 ... 947 953 967 ... 983 991 997 % 印 1 が付いている、値 start 以降で最 も小さな添え字の探索方法 i = start; while( a[i]==0 ) i++; このとき、a[i]が全て0であれば繰り 返しが終了しない。最後には0以外 が入っていることが必要(番兵センチ ネル) ヒント int a[1001] を宣言 素数の候補に印 int 1 を付ける。 a[0] = 0, a[1] = 0, a[2] = 1, a[3] = 1, a[4] = 1, ... 印 1 が着いている最も小さな添え字は 2。 2 の倍数は素数ではないので、4, 6, 8, ... に 印 0 をつける。 a[4] = 0, a[6] = 0, a[8] = 0, a[10] = 0, ... for(i=4; i < 1000; i += 2) a[i] = 0; 印 1 が着いている最も小さな添え字は 3。 3 の倍数は素数ではないので、6, 9, 12, ... に 印 0 をつける。 a[6] = 0, a[9] = 0, a[12] = 0, a[15] = 0, ... 6
© Copyright 2024 ExpyDoc