Skip to content
On this page

6-1. Order

以下のような商品の一覧が与えられる。

No.値段名前スペック
05,000それなり
1100チョコおいしい
2300,000ゲーミングPCやすい
3100,000安いPCたかい

これらの商品を扱える構造体 Item を作成しよう。

また、以下のクエリに対して、返答しよう。

  1. 番号が与えられたときに、その商品の名前、値段、スペックを表示する。
  2. 値段が与えられたときに、その値段以下の全ての商品の名前、値段、スペックをすべて表示する。
cpp
#include <iostream>
#include <vector>
using namespace std;

struct Item {
    // ここを実装する
};

int main() {
    vector<Item> items = {
        Item{5000, "", "それなり"},
        ...
    };
    
    // ここに 1番 2番を 解けるプログラムを書く
}

入出力例

text
[Input 1]
1 0
text
[Output 1]
机 5000 それなり
text
[Input 2]
2 100001
text
[Output 2]
机 5000 それなり
チョコ 100 おいしい
安いPC 100000 たかい
Hint

Item構造体を宣言して、以下のメンバー変数とメソッドを実装しよう。

  • price(int型)
  • name(string型)
  • spec(string型)
  • printメソッド
Answer
cpp
#include <iostream>
#include <vector>
using namespace std;

struct Item {
    int price;
    string name;
    string spec;

    void print() {
        cout << name << " " << price << " " << spec << endl;
    }
};

int main() {
    vector<Item> items = {
        Item{5000, "", "それなり"},
        Item{100, "チョコ", "おいしい"},
        Item{300000, "ゲーミングPC", "やすい"},
        Item{100000, "安いPC", "たかい"}
    };
    
    // クエリの条件分岐
    int query_type;
    cin >> query_type;
    if (query_type == 1) {
        int no;
        cin >> no;
        items[no].print();
    } else if (query_type == 2) {
        int price;
        cin >> price;
        for (int i=0; i<items.size(); i++) {
            Item item = items[i];
            if (item.price <= price) {
                item.print();
            }
        }
    }
}