
アルゴリズムを勉強するときに以下のソースを書きました;
void weighted_quick_union_algorithm() {
static const int volume = 10;
enum status {
terminate_,
union_,
find_
};
string str;
status sta;
vector<int> system(volume, 0);
vector<int> size(volume, 1);
for (int index = 0; index != volume; ++index) {
system[index] = index;
}
do {
cout<<"cin"<<endl;
cin >> str;
for (string::size_type index = 0; index != str.size(); ++index) str[index] = toupper(str[index]);
if (str == "UNION") sta = union_;
else if (str == "FIND") sta = find_;
else if (str == "TERMINATE") sta = terminate_;
switch (sta) {
case(0):
{
cout << str << endl;
break;
}
case(1):
{
cout << str << sta << endl;
int p(0), q(0), i(0), j(0);
while (cin >> p) {
cin >> q;
for (i = p; i != system[i]; i = system[i]);
for (j = q; j != system[j]; j = system[j]);
if (i == j) continue;
if (size[i] < size[j]) {
system[i] = j;
size[j] += size[i];
} else {
system[j] = i;
size[i] += size[j];
}
cout << p << " - " << q << endl;
}
cout<<"break"<<endl;
break;
}
case(2):
{
cout << str << sta << endl;
break;
}
}
} while (sta);
}
しかし unionを入力しあと ; でwhile(cin>>p)をブレイクしたら
cin
break
UNION1
cin
break
Union1
で無限ループ
結構時間かかったが間違いがわかりません
ちなみに最少は while(cin>>p>>q)と書いていましたが同じ結果です。
どうかお願いします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaのプログラムについて
-
javaのプログラムについて
-
乱数の生成について
-
日付の比較(Beforeメソッド)
-
論理演算子”||”またはの入力方法
-
arraycopy コンパイルエラー
-
コンソール入力内容をエコーさせる
-
コインのプログラムが作れずに...
-
javaのエラーが回収できない
-
カレンダー作成について質問です。
-
javaで素数判断プログラム作成...
-
java eclipse do-while文
-
JAVAのwhileループについての質...
-
連立方程式を解くプログラムの...
-
二分木,間違い探し
-
Java 入力した整数値の合計を、...
-
javaで繰り返しを使って・・・
-
数値から日付書式へ
-
多次元配列について
-
for文とStringBuffer
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ループ処理の際、最後だけ","を...
-
論理演算子”||”またはの入力方法
-
数値⇒漢数字変換 java
-
java キーボード入力された値の...
-
Randomメソッドの確率設定
-
テキストボックスに入力された...
-
続・ZZZ,ZZZ,ZZ9形式の金額形式...
-
7つ数字を表示したら改行すると...
-
countに実行した回数をいれたい...
-
JAVAのfor文で困っています。
-
(急いでいます)Javaで3回間違...
-
Java 入力した整数値の合計を、...
-
Java、2の0乗~10乗の表示
-
点数をだす時に、maxとminがお...
-
javaです。 途中まで出来ている...
-
Ctrl+Zが入力されると終了する...
-
配列を逆順させて表示させる方...
-
Java 配列 勝敗、引き分け判定...
-
繰り返しによる星印の出力
-
javaプログラムについて
おすすめ情報