問題4:STL①(ベクター・リスト・マップ)

この問題を解くためには…
 → 応用編第4日目参照

probex4-1.(難易度:★)

コンソールから正の整数値を入力させ続け、-1を入力すると、それまで入力した整数をすべて、奇数・偶数にわけて表示するプログラムを作りなさい。この時、入力された奇数・偶数の値は、それぞれ別の、vectorで作った可変長配列の中に格納すること。

期待される実行結果
正の整数を入力:1
正の整数を入力:9
正の整数を入力:8
正の整数を入力:2
正の整数を入力:4
正の整数を入力:3
正の整数を入力:7
正の整数を入力:-1 ← -1が入力されたら、入力を終える

偶数 : 8 2 4
奇数 : 1 9 3 7

probex4-2.(難易度:★)

コンソールから正の整数値を入力させ続け、-1を入力すると、それまで入力した整数の中から、最大値・最小値を選んで表示するプログラムを作りなさい。このとき、入力された整数値は、vectorで作った可変長配列の中に格納すること。

期待される実行結果
正の整数を入力:21
正の整数を入力:9
正の整数を入力:11
正の整数を入力:37
正の整数を入力:4
正の整数を入力:3
正の整数を入力:1
正の整数を入力:-1 ← -1が入力されたら、入力を終える

最大値 : 37
最小値 : 1

probex4-3.(難易度:★★)

コンソールから正の整数値を入力させ続け、-1を入力すると、それまで入力した整数の一の位が同じものをまとめて表示するプログラムを作りなさい。このとき、入力された整数値は、vectorで作った可変長配列の中に格納すること。

期待される実行結果
正の整数を入力:50
正の整数を入力:43
正の整数を入力:2
正の整数を入力:12
正の整数を入力:34
正の整数を入力:24
正の整数を入力:8
正の整数を入力:-1 ← -1が入力されたら、入力を終える

一の位が0 : 50
一の位が1 : なし ← 該当する数値が無い場合は、「なし」と表示する。
一の位が2 : 2
一の位が3 : 43
一の位が4 : 24 34 ← 該当するものが複数存在する場合は、すべて表示する。
一の位が5 : なし
一の位が6 : なし
一の位が7 : なし
一の位が8 : 8
一の位が9 : なし

probex4-4.(難易度:★★)

コンソールから文字列を入力させ続けて、何も入力せずEnterを押すと、それまで入力した文字列の中から、最も長い単語と、最も短い単語を表示するプログラムを作りなさい。このとき、入力された文字列は、vectorで作った可変長配列に格納すること。また、最長の単語、最短の単語が複数あった場合、それらをすべて表示させること。

(ヒント:文字列の長さは、stringクラスのlength()関数を使うこと。)

期待される実行結果
文字列を入力:apple
文字列を入力:good
文字列を入力:pineapple
文字列を入力:big
文字列を入力:dog
文字列を入力:cowboy
文字列を入力: ← 何も入力せず、Enterを押すと、入力を終える

最長の単語:pineapple
最短の単語:big dog ← 最長・最短の単語が複数ある場合は、すべて表示する。

probex4-5.(難易度:★)

-1が入力されるまで、コンソールから正の整数値を入力させ続け、-1を入力すると、それまで入力した整数の中から2を除いた数を選んで表示するプログラムを作りなさい。このとき、入力された整数値はlistで作った可変長配列の中に格納し、最後に、2の入った要素をremove()メソッドで削除してから表示するようにしなさい。

期待される実行結果
正の整数を入力:2
正の整数を入力:9
正の整数を入力:11
正の整数を入力:3
正の整数を入力:2
正の整数を入力:5
正の整数を入力:2
正の整数を入力:-1 ← -1が入力されたら、入力を終える

9 11 3 5

probex4-6.(難易度:★★)

コンソールから正の整数を入力すると、それまで入力した数値が、小さい順に並べ替えて表示されるようなプログラムを作りなさい。-1が入力されたら、プログラムは終了するものとする。なお、それまで入力され続けていた数値は、listに格納し、適切な場所に挿入するようにすること。

期待される実行結果
正の整数を入力:5

入力された数:5

正の整数を入力:9

入力された数:5 9 ← 9は5より大きいので、5の後に挿入する。

正の整数を入力:1

入力された数:1 5 9 ← 1は5より大きいので、5の前に挿入する。

正の整数を入力:3

入力された数:1 3 5 9 ← 3は1と5の間なので、1と5の間に挿入する。

正の整数を入力:9

入力された数:1 3 5 9 9 ← すでに入力された数値も、重複してて登録する。

正の整数を入力:-1 ← -1が入力されたら、プログラムを終了する。

probex4-7.(難易度:★★)

コンソールから文字列を入力させ続けて、何も入力せずEnterを押すと、それまで入力した文字列の中から、5文字以上の単語以外のものがすべて表示されるようにプログラムを作りなさい。なお入力され続けていた文字列は、すべて一旦listに格納し、最後に5文字以上のものを削除してから表示しなさい。

期待される実行結果
文字列を入力:apple
文字列を入力:good
文字列を入力:pineapple
文字列を入力:big
文字列を入力:dog
文字列を入力:cowboy
文字列を入力:sparrow
文字列を入力:downtown
文字列を入力:girl
文字列を入力: ← 何も入力せず、Enterを押すと、入力を終える。

5文字未満の単語:good big dog girl ← 全単語をlistに格納し、5文字以上のものを削除しすべて表示する。