• ベストアンサー

C言語 並び替え(配列)について

funahoの回答

  • ベストアンサー
  • funaho
  • ベストアンサー率58% (43/74)
回答No.1

これはどうですか? #include <stdio.h> void main(){ int d[10], i, j, work; for(i=0; i<10; i++){ printf("d[%d]->", i); scanf("%d", &d[i]); } for(i=0; i<=8; i++){ for(j=i+1; j<=9; j++){ if(d[i]>d[j]){ work=d[i]; d[i]=d[j]; d[j]=work; } } } for(i=0; i<10; i++){ printf("d[%d]:%d\n", i, d[i]); } }

mradult
質問者

お礼

有難う御座います。 もしよければ、 考え方等、 教えて頂けたら幸いです。

関連するQ&A

  • C言語の問題で困っております

    三つのint 型整数を昇順にならべかえる関数を作成せよ void sort3 (int n1, int n2, int n3) わかる方、教えてくれませんか。 説明もしてくれたらとても嬉しいです。

  • 関数はあるがC言語で書けないプログラム

    数学的に関数はあるがC言語では書けないプログラムを 探しています。 関数自体は偶数か奇数(0以上の整数)を返す関数で しかしプログラムでは書けないというものです。 よろしくお願いします。

  • C言語で巨大配列を作るにはどうすれば良いのでしょうか?

    C言語で巨大配列を作るにはどうすれば良いのでしょうか? テストで作ってみた配列を用いたプログラムが動かなかったので(コンパイルは正常)、なんでだろうと思って調べてみると、巨大な配列はcalloc関数等を用いて作る必要があると知りました。 しかし正直解説サイトを見てもよく意味が分かりませんでした…。 例えばA[1000][1000][1000]の様な配列は、どの様に作ればいいのでしょうか? A[x][y][z]みたいに表現して、Aを変えて同じ様な配列を8個ほど作りたいです。 初心者なので勉強不足かも知れませんが、どうぞ宜しくお願い致します。

  • C言語の問題で困っています。

    C言語の問題で困っています。 誰か教えてください。 下の問題ですが、intがiだけでプログラムするにはどうしたら良いでしょうか? (a)から(d)に入るプログラムをすいませんが教えてください。 お願いします。 【問題】 1以上10以下の整数を昇順に区切って表示するプログラムです。 実行例 1 2 3 4 5 #include <stdio.h> int main (void) { int i; (A) while ((b)){ (c); (d); } printf("¥n"); return(0); }

  • C言語についてなんですが

    プログラムの作成で分からないところがあります。 「二つの整数値を読み込み、小さいほうの数以上で大きい数以下の 整数を全て加えた値を表示するプログラムをdo文を使って 作成せよ。」 下の図のようにしたいです。 2つの整数を入力せよ。 整数A:37 整数B:28 28以上37以下の全整数の和は325です。 よろしくお願いします。

  • C言語

    C言語のプログラムで『正の整数を読み込み、その整数より小さい3の倍数を全て表示するプログラムを作る』 これをどなたかプログラミングしてください。お願いします。

  • C言語についての質問です><

    0から100までの乱数を発生させ要素20個の整数配列aに乱数を格納し、 その配列を大きい順番に並び替える。 その際もともと格納されていた配列の場所もあわせて 表示するプログラムを示せ。 乱数発生にはsrand関数とrand 関数を使います。 二次元配列を使うこと. プログラムリソースとプログラム解説をつけてほしいです>< 例 number place a[0]=98 3 a[1]=94 19 a[2]=90 1 のようになるようにお願いしますm(_ _)m

  • 配列

    大学生でC言語を学んでいます。「整数型配列にキーボードから10個の整数を読み込み昇順に並び替えて表示する」というのをやろうとしているのですがうまくできません。みなさんの力をお貸しいただきたいです。宜しくお願いします。

  • C言語をお願いします

    関数の使い方が分かりません、お知恵を貸してください 問題 一桁の整数を入力。 その数を起点として5の段までの九九の表を表示するプログラムを作成。 条件が4つ。 ・下記の実行結果のように表示しなさい。 ・タイトル行(1・・・5)の表示は、main 関数で行う。 ・入力した数を起点とした5の段までの九九の表を表示する関数 func99 を作る。 ・そのうち乗算部分は、func_mul 関数を作る。 5(入力) 実行例 1 2 3 4 5 //ここはプリントで出力 5 10 15 20 25 6 12 18 24 30 7 14 21 28 35 8 16 24 32 40 9 18 27 36 45 10 20 30 40 50 数字部分は%5dでお願いします

  • C言語をお願いします

    何が違うのか教えてください。 segmentation faultになります。 よく分からないので、プログラムを作っていただければ、助かります。 問 整数を入力し、降順並び変えてに表示。 ・入力した整数は配列に入れ、その配列を使って並び変える(入力終りの印は 1000 とする)。 ・入力する整数の個数は #define NUM 100 を使いなさい。 ・使うデータは、下記の例のように、キーボードから入力すること。 #include<stdio.h> #define NUM 100 int main(void){ int d[NUM]; int temp; int i,j,n; printf("Input scores.\n"); for(i=0; i<NUM && d[i]!=1000; i++){ scanf("%d",&d[i]); } n = i; for(i = 0; i < n; i++){ for(j = i + 1; j < n;j++){ if(d[j] > d[i]){ temp = d[i]; d[j] = d[i]; d[i] = temp; } } } printf("After sort."); for(i=0; i < n; i++){ printf("%d\n",d[i]); } return 0; } 実行例 Input scores. 60 30 45 90 100 0 1000 After sort. 100 90 60 45 30 0 よろしければ 問2 並び変えをする部分を mysort 関数にしたプログラムを作ってください。 main 関数から mysort 関数には点数の個数と sort 前の配列を渡し、並び変え結果の表示はmain 関数でお願いします。 (問題の意味が分かりません) 関数はさっぱり分かりません。 では、お願い致します。