Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

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の順に正しく降順で並べ替えられていることが確認できます。

  1. 【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

  2. 【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