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ランキング
-
matlabで、平均値を求める方法...
-
MATLAB(マトラボ)とcsvファ...
-
ポインター引数の関数でコンパ...
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
バイナリとBCDコード
-
stable diffusionのエラー
-
エクセルシート名の制限を変更...
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
Excel VBA メール作成について ...
-
Excel 1セル当りの文字数が2...
-
DataGridViewの特定列に入力さ...
-
ビットスワップとバイトスワッ...
-
1KBが1024byteな理由
-
ピクセル,dpiから容量(バイト...
-
ビットデータのチェック方法
-
SQLで1バイト、2バイト混在...
-
VBAでUnicodeしか存在しない文...
-
エクセルVBA:日付データの変換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA エクセルで1列で表示したい。
-
matlabで、平均値を求める方法...
-
MATLAB(マトラボ)とcsvファ...
-
文字型変数を使って2進数表示す...
-
いつどこゲームのようなテキス...
-
VBScripの2次元動的配列
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
Excel VBA メール作成について ...
-
stable diffusionのエラー
-
DataGridViewの特定列に入力さ...
-
エクセルシート名の制限を変更...
-
なんでブラウザでPHPを動かすた...
-
COBOLのCOMP形式について
-
ポインター引数の関数でコンパ...
-
char str[256]の256の意味は?
-
メールの件名をデコードしたい
-
バイナリとBCDコード
-
Excel 1セル当りの文字数が2...
-
異なるドメインのサイトでcooki...
おすすめ情報