今日の人気記事

  1. 条件演算子(3項演算子)「? :」
  2. printf関数の変換指定子
  3. 長方形の面積を計算する
  4. 1から1000までの素数を表示する
  5. continue文 - ループをスキップ

配列に格納した数値を降順ソートする

当ページのリンクには広告が含まれています。

スポンサーリンク

配列に格納した数値を降順ソートするサンプルプログラムを紹介します。

降順ソート

降順ソートでは、数値を大きい方から小さい方へソートします(並べ替えます)。

  • 例えば、{3,8,5} という配列を降順ソートすると {8,5,3} になります。
  • 例えば、{-1,3,1,8,5} という配列を降順ソートすると {8,5,3,1,-1} になります。

サンプルプログラム

それではサンプルプログラムをみてみましょう。

/*
 * C言語のサンプルプログラム - Webkaru
 * - 配列に格納した数値を降順ソート -
 */
#include <stdio.h>

int main(void)
{

  int i, j, tmp;

  /* 数値を格納する配列 */
  int number[100];

  /* 数値の総数を入力 */
  int total;
  printf("入力する数値の総数 = ");
  scanf("%d", &total);

  /* 配列に格納する数値を入力 */
  printf("%d個の数値を入力 \n", total);
  for (i=0; i<total; ++i)
    scanf("%d", &number[i]);

  /* 数値を降順にソート */
  for (i=0; i<total; ++i) {
    for (j=i+1; j<total; ++j) {
      if (number[i] < number[j]) {
        tmp =  number[i];
        number[i] = number[j];
        number[j] = tmp;
      }
    }
  }

  /* 降順ソートした数値を出力 */
  printf("降順ソートした数値\n");
  for (i=0; i<total; ++i)
    printf("%d\n", number[i]);
}

サンプルプログラムで使っている構文

実行結果

いくつかの実行結果です。

入力する数値の総数 = 3
3個の数値を入力 
3
8
5
降順ソートした数値
8
5
3
入力する数値の総数 = 5
5個の数値を入力 
-1
3
1
8
5
降順ソートした数値
8
5
3
1
-1

適切に数値が降順ソートされていますね。

サンプルプログラム の人気記事

  1. 10進数を2進数に変換する
  2. 入力した自然数の階乗を計算する
  3. 入力した2つの数値の掛け算・割り算する
  4. 配列に格納した数値を昇順ソートする
  5. フィボナッチ数の計算する
  6. 入力した2つの自然数の最大公約数を求める
  7. for文 - 1つ飛ばしの繰り返し処理を実行する(奇数・偶数)
  8. サンプルプログラム集
  9. 2次方程式の解を計算する
  10. 入力した文字列の文字数を表示する(出力)

関連記事(一部広告含む)