(C++)queの事についてです。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: (C++)queの事についてです。

Re: (C++)queの事についてです。

#10

by かずま » 8年前

ドドド素人 さんが書きました:何故ダメなのですか?!?!
配列の範囲外参照の可能性が気になりませんか?
push の回数より、pop の回数が多い場合の対応は?

Re: (C++)queの事についてです。

#9

by ドドド素人 » 8年前

何故ダメなのですか?!?!

Re: (C++)queの事についてです。

#8

by かずま » 8年前

これでどうでしょうか?

コード:

#include <iostream>
 
using namespace std;
 
class que {
    int b[100];
    int i, o;
public:
    void empty() { i = o = 0; }
    void push(int v) { b[i++] = v; }
    int pop() { return b[o++]; }
};
 
int main()
{
    que a, b;
    int n, v;
 
    cin >> n;
    a.empty();
    b.empty();
    for (int i = 0; i < n; i++) {
        cin >> v;
        a.push(v);
        cin >> v;
        b.push(v);
    }
    for (int i = 0; i < n; i++) {
        cout << a.pop() << endl;
        cout << b.pop() << endl;
    }
    return 0;
}
これはだめなんです。
何が問題だと思いますか?

Re: (C++)queの事についてです。

#7

by ドドド素人 » 8年前

実行してみたのですが、
10 20 30 40 50 60 70 80
と入力しても

2
3
4
5
6
7
8
となってしまいます...

Re: (C++)queの事についてです。

#6

by かずま » 8年前

ドドド素人 さんが書きました:4↓
1 2 3 4 5 6 7 8
と入力したら、
1
2
3
4
5
6
7
8
と出力するようにしたいです。
ということは、私の解答でいいということですか?
そのプログラムを実行してみましたか?

Re: (C++)queの事についてです。

#5

by ドドド素人4 » 8年前

4↓
10 20 30 40 50 60 70 80
と入力したら、
10
20
30
40
50
60
70
80
というふうに、入力した数値通りのものを表示させたいです。

Re: (C++)queの事についてです。

#4

by ドドド素人 » 8年前

返信ありがとうございます。

4↓
1 2 3 4 5 6 7 8
と入力したら、
1
2
3
4
5
6
7
8
と出力するようにしたいです。

Re: (C++)queの事についてです。

#3

by かずま » 8年前

que とは何ですか?
何をするものですか?
empty, push, pos は、どういう動作をすればいいのですか?
詳しく説明してください。

試しに、que をクラスとして実現してみました。
empty, push, pos をメソッドとして実装してみました。
main は、インデントだけを変えました。

コード:

#include <iostream>
 
using namespace std;
 
class que {
public:
    void empty() {}
    void push(int v) {}
    int pop() const { static int v; return ++v; }
};

int main()
{
    que a, b;
    int n, v;

    cin >> n;
    a.empty();
    b.empty();
    for (int i = 0; i < n; i++) {
        cin >> v;
        a.push(v);
        cin >> v;
        b.push(v);
    }
    for (int i = 0; i < n; i++) {
        cout << a.pop() << endl;
        cout << b.pop() << endl;
    }
    return 0;
}
実行結果

コード:

2  (入力)
1  (入力)
2  (入力)
3  (入力)
4  (入力)
1
2
3
4
どういう入力に対して、どういう出力を期待していますか?

Re: (C++)queの事についてです。

#2

by みけCAT » 8年前

まず、ここで作りたい「que」に求められる仕様を日本語で説明してください。

(C++)queの事についてです。

#1

by ドドド素人 » 8年前

queをクラスとして実現したいのですが、
このmain関数を変えずに作るには
emptyやpushやpopなどはどうしらた良いのでしょうか...

コード:

#include <iostream>

using namespace std;



int main()
{
que a,b;

int n,v;

cin>>n;
a.empty();
b.empty();
for(int i=0;i<n;i++){
cin>>v;a.push(v);
cin>>v;b.push(v);
}
for(int i=0;i<n;i++){
cout<<a.pop()<<endl;
cout<<b.pop()<<endl;
}
return 0;
}

ページトップ