質問編集履歴
1
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,90 +1 @@
|
|
1
|
-
C言語です。以下の設問①〜④が分からず困っています。どうか教えてください。。。
|
2
|
-
|
3
|
-
|
4
|
-
設問①
|
5
|
-
scanfを使った入力を繰り返して、正の整数を配列に代入させて、
|
6
|
-
すべてを代入した後で、その配列の要素の値を下の条件に従って
|
7
|
-
表示するプログラムを作成して下さい。
|
8
|
-
<条件>
|
9
|
-
・同じ数値は入力しないものとする。
|
10
|
-
・最大20個まで入力できるものとする。
|
11
|
-
・0が入力されたら入力を終了。0は配列に代入しないものとする。
|
12
|
-
・すべての配列要素の値を
|
13
|
-
配列番号 : 値
|
14
|
-
の形式で、要素数分だけ、改行しながら表示させる。
|
15
|
-
・入力された要素の配列以外を出力してはいけない。
|
16
|
-
・21個以上の入力があっても、20個までの入力された時点までで入力処理を
|
17
|
-
打ち切って処理を先に進めること。
|
18
|
-
・while文を使うこと。
|
19
|
-
|
20
|
-
例えば、入力が
|
21
|
-
6
|
22
|
-
2
|
23
|
-
7
|
24
|
-
4
|
25
|
-
3
|
26
|
-
0
|
27
|
-
なら、出力の表示は
|
28
|
-
0 : 6
|
29
|
-
1 : 2
|
30
|
-
2 : 7
|
31
|
-
3 : 4
|
32
|
-
4 : 3
|
33
|
-
となるようにします。
|
34
|
-
|
35
|
-
設問②
|
36
|
-
①の方法と条件を使って、配列データを得て、配列中の最大値と、
|
37
|
-
その最大値の格納されている配列要素の番号を
|
38
|
-
配列番号 : 値
|
39
|
-
の形式で表示するプログラムを作成して下さい。
|
40
|
-
|
41
|
-
例えば、①の例の入力データの場合、出力の表示は
|
42
|
-
2 : 7
|
43
|
-
と表示されるようにします。
|
44
|
-
|
45
|
-
設問③
|
46
|
-
①の方法と条件で入力した配列について、配列の要素の値の大きい方から順に
|
47
|
-
値を並べ替えて、その後、並べ替え後の配列の値を、配列の番号の順に、
|
48
|
-
配列番号 : 値
|
49
|
-
の形式で、すべての要素について表示するプログラムを作成して下さい。
|
50
|
-
なお、並べ替え方法(アルゴリズム)には、②の最大値の探索の方法を取り入れ
|
51
|
-
て下さい。
|
52
|
-
|
53
|
-
たとえば、①の入力データの場合、
|
54
|
-
0 : 7
|
55
|
-
1 : 6
|
56
|
-
2 : 4
|
57
|
-
3 : 3
|
58
|
-
4 : 2
|
59
|
-
となります。元の番号ではなく、単に0オリジンの番号になるので注意。
|
60
|
-
|
61
|
-
設問④
|
62
|
-
下の条件に従って、成績ファイルを読み取り、得点の高い方から順番に、
|
63
|
-
IDと点数を1行に並べた全員分をファイル出力するプログラムを作成して下さい。
|
64
|
-
|
1
|
+
お答えていただき、ありがとうございました。勉強の参考にさせていただきます。
|
65
|
-
|
66
|
-
<条件>
|
67
|
-
・入力される成績ファイルの各行は次の形式。
|
68
|
-
ID 得点
|
69
|
-
・IDも得点も整数値とする。
|
70
|
-
・入力ファイルの最終行は成績データではなく、次のように記述する。
|
71
|
-
0 0
|
72
|
-
・入力ファイルのデータ数は最大100件とする。100未満の場合も対応する。
|
73
|
-
・出力ファイルの各行も入力ファイルと同様の形式とするが、最終行は
|
74
|
-
0 0
|
75
|
-
とはしないこと。
|
76
|
-
|
77
|
-
例えば、入力ファイルの内容が、
|
78
|
-
12011 78
|
79
|
-
12012 52
|
80
|
-
12013 64
|
81
|
-
12015 91
|
82
|
-
12017 83
|
83
|
-
0 0
|
84
|
-
であったとき、出力ファイルの内容は、
|
85
|
-
12015 91
|
86
|
-
12017 83
|
87
|
-
12011 78
|
88
|
-
12013 64
|
89
|
-
12012 52
|
90
|
-
となります。
|