int dat[10];
int i,j,wk,sum;
/*データ入力*/
printf("10個の数値を入力してください.");
for(i=0,sum=0,i<10;i++){
scanf("%d,&dat[i]);
sum += dat[i];
}
/*整列*/
for (i=0,i<9;i++){
for (j=i+1,j<10;j++){
if(dat[i]>dat[j]){
wk=dat[i];
dat[i]=dat[j];
dat[j]=wk;
}
}
}
すいませんが、この整列の中でなぜ昇順になるのかわからないのです。
ex)scanfで8 7 9 6と入力したとき、
dat[i]=dat[0]=8で
dat[j]=dat[1]=7となり
プログラム上ではwk=8と格納され、次にdat[i]=dat[j]なので7の値がdat[i]に格納される。そしてdat[j]=wkからdat[j]に8が格納される。
つまりdat[0]=7になり、dat[1]=8になりそのつぎにdat[2]=9は処理せずそのままでdat[2]=3となりますがdat[3]=6のときくらべるのが
if(dat[i]>dat[j])よりdat[2]>dat[3]より処理をしたら
全体的に7 8 6 9の順番になり決して昇順にならないと思います。
なぜこのプログラムで昇順になるのか内部的な説明が欲しいです。
お願いします。
No.1ベストアンサー
- 回答日時:
>この整列の中でなぜ昇順になるのかわからないのです。
i と j の二重のループを、コンピューターになったつもりで
今一度なぞってみてください。
i が 0 で、j が 1 の状態から始まります。
わかりました。
i=0のときにj=1~10のすべてのものと
大小の比較を行えばいいですね。
dat[0]とdat[1~9]の比較なので
すべての数と比較できますね。
ありがとうございました。
No.2
- 回答日時:
>for(i=0,sum=0,i<10;i++){
必ず10個の数値を入力しなければなりません。
> ex)scanfで8 7 9 6と入力したとき、
入力がプログラムの仕様を満たしていません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- MySQL MYSQL エラー 2 2022/10/18 11:37
- Java JaneStyleのスレッドが見れなくなった 1 2023/06/10 08:02
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perlでファイル名を変更したい...
-
ポインター引数の関数でコンパ...
-
char str[256]の256の意味は?
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
「1TB」のHDDに日本語は何字入...
-
Excel 1セル当りの文字数が2...
-
Excel VBA メール作成について ...
-
バイト列とバイナリ列の違いが...
-
10個の実数に対する降順ソート...
-
COBOLのCOMP形式について
-
64bit対応
-
半角、全角の判別方法
-
Cのプログラムがどうしても動き...
-
memcmp バイナリデータの比較方法
-
【VB2005】テキストボックス内...
-
SQLで1バイト、2バイト混在...
-
バイナリとBCDコード
-
3バイト文字(UTF-8)をprintfで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MATLAB(マトラボ)とcsvファ...
-
matlabで、平均値を求める方法...
-
VBA エクセルで1列で表示したい。
-
VBScripの2次元動的配列
-
いつどこゲームのようなテキス...
-
VB6.0でMSChartをタイマーを使...
-
メールアドレスをテキストファ...
-
複数のCSVを一度にダウンロード
-
MSDOSからワイルドカード指定で...
-
utf-8のコードを使いたい
-
ポインター引数の関数でコンパ...
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
エクセルシート名の制限を変更...
-
COBOLのCOMP形式について
-
stable diffusionのエラー
-
ビットスワップとバイトスワッ...
-
char str[256]の256の意味は?
-
Excel VBA メール作成について ...
-
バイナリとBCDコード
おすすめ情報