C言語で配列を降順にソートするプログラムの書き方
問題
与えられた配列を、書かれたコードに従って降順または昇順に並べ替えます。ここでは、配列を降順(大きい順)にソートするCプログラムを紹介します。
解決策
配列とは、共通の名前を持つ関連性のあるデータ項目の集まりのことです。配列内の特定の値は、「インデックス番号(添字)」によって識別されます。
配列の宣言
配列を宣言するための基本構文は以下のとおりです。
データ型 配列名 [サイズ];
例えば、次のように宣言します。
float marks[50];
この宣言により、「marks」は50個のfloat型要素を格納できる配列となります。
int number[10];
この宣言により、「number」は最大10個の整数値を格納できる配列となります。
各要素は「配列インデックス」によって識別され、インデックスを使うことで配列の要素へ簡単にアクセスできます。
プログラム
以下は、配列を降順にソートするCプログラムです。隣接する要素同士を比較して入れ替えることで、大きい値から順に並べ替えています。
#include <stdio.h>
void main (){
int num[20];
int i, j, a, n;
printf("enter number of elements in an array\n");
scanf("%d", &n);
printf("Enter the elements\n");
for (i = 0; i < n; ++i)
scanf("%d", &num[i]);
for (i = 0; i < n; ++i){
for (j = i + 1; j < n; ++j){
if (num[i] < num[j]){
a = num[i];
num[i] = num[j];
num[j] = a;
}
}
}
printf("The numbers in descending order is:\n");
for (i = 0; i < n; ++i){
printf("%d\n", num[i]);
}
}プログラムのポイント
- 二重のforループを使い、すべての要素同士を比較します。
- 条件
num[i] < num[j]が真の場合、一時変数aを使って2つの要素を入れ替えます。 - 昇順にしたい場合は、比較条件を
num[i] > num[j]に変更するだけで対応できます。
出力
上記のプログラムを実行すると、次のような結果が表示されます。
enter number of elements in an array 4 Enter the elements 11 34 67 89 The numbers in descending order is: 89 67 34 11
このように、入力された4つの要素(11、34、67、89)が、89・67・34・11の順に正しく降順で並べ替えられていることが確認できます。
-
【Python入門】リストの要素を降順に並べ替える方法をわかりやすく解説
Pythonでは、リスト(配列)の要素を降順に並べ替えたい場合、sort()メソッドを使い、引数reverseにTrueを指定するだけで簡単に実現できます。 サンプルコード my_list = [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] print(元のリスト:) print(my_list) my_list.sort(reverse = True) print(降順にソートした後のリスト:) print(my_list) 実行結果 元のリスト: [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] 降順にソートした後のリスト: [89
-
【Python入門】リスト(配列)の要素を昇順に並べ替える方法|sortメソッドの使い方
Pythonでリスト(配列)の要素を昇順に並べ替えたい場合は、sortメソッドを使います。sortメソッドはデフォルトで昇順にソートしてくれるため、引数を指定しなくても簡単に並べ替えが可能です。また、降順に並べ替えたい場合は、reverseパラメータにTrueを指定するだけで対応できます。以下に具体的な使用例を示します。サンプルコードmy_list = [44, 56, 42, 31, 11, 23, 78, 89, 9, 0] print(The list is :) print(my_list) my_list.sort() print(The list after sorting is