みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

#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の意味が解らない)
どうかご回答お願いします。

投稿日時 - 2017-01-20 18:51:47

QNo.9283709

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

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

投稿日時 - 2017-01-23 11:50:20

ANo.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++) {

はどうなるのか考えてみてください。

バブルソートについては解説されているサイトはいくつもありますから探してみてください。

投稿日時 - 2017-01-20 23:59:29

ANo.1

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

投稿日時 - 2017-01-20 20:06:24

お礼

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

投稿日時 - 2017-01-20 20:39:09