• 締切済み

ところどころ理屈の解らない記述

#include<iostream> using namespace std; int main() { const int num = 5; //変数numを5の値で初期化、constを使うから値の変更はない int test[num]; //int型の配列testを初期化 cout << num << "人の点数を入力してください。\n"; //変数numを出力して点数入力を促す for (int i = 0; i < num; i++) { //int型のiを0で初期化 numよりiが小さい場合 iを1増やす cin >> test[i]; //上のfor文によって配列の点数を5回入力 } for (int s = 0; s < num - 1; s++) {  for (int t = s + 1; t < num; t++) { if (test[t] > test[s]) { int tmp = test[t]; test[t] = test[s]; test[s] = tmp; } } } for (int j = 0; j < num; j++) { cout << j + 1 << "番目の人の点数は" << test[j] << "です。\n"; } return 0; } 解るところは、コメントしてあります。 それ以外で解らないところがあるので、(特にnumの後ろにつく-1の意味が解らない) どうかご回答お願いします。

みんなの回答

回答No.3

...ところで、ここで出てくるソート・アルゴリズムはバブルソートではありません。 選択ソートです。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

numの後ろにつく-1というのは >for (int s = 0; s < num - 1; s++) { のところの事だと思いますが仮に -1 がない for (int s = 0; s < num; s++) { だとsは0,1,~,num-1 の値を取ることになりますがsがnum-1のとき >for (int t = s + 1; t < num; t++) { はどうなるのか考えてみてください。 バブルソートについては解説されているサイトはいくつもありますから探してみてください。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

典型的なバブルソートのプログラムです(バブルソートがわからないという質問ではないよね?)。

asura666
質問者

お礼

回答ありがとうございます。 バブルソートが解らないという質問ではないですが、 バブルソートも解りません。 初めて聞きました。

関連するQ&A