C言語関係掲示板

過去ログ

No.1145 2次元配列の1番目の列要素に点数の高い順からの順位を格納する

[戻る] [ホームページ]
No.14601

2次元配列について
投稿者---アルル(2004/06/13 12:09:46)


この問題は1番目の列要素に点数の高い順からの順位を格納する
プログラムを作成する。というものです。
本当はもっと要素があったのですが、わかり難かったので
あえて3つにしました。

if(seiseki[i][0]<seiseki[j][0])

if文の条件が何を意味しているのかがわかりません。
for文の2重ループで何と何を比較しているのでしょうか。
外側のループは2次元配列で初期化した要素全体をあらわしている?
内側のループは何を・・?


#include <stdio.h>

int main(void)
{
    int seiseki[3][2]={
            {67,1},{43,1},{56,1}
            };
                

    int i,j;

    for(i=0;i<3;i++)
        for(j=0;j<3;j++)

    {
        if(seiseki[i][0]<seiseki[j][0]) 

        {   
            seiseki[i][1]++;

            printf("%d   %d\n",seiseki[i][1]);
        }
    }


    puts("点数 順位");
        for(i=0;i<3;i++)
    {
        printf("%3d      %2d\n",seiseki[i][0],seiseki[i][1]);
    }
    return 0;
}
                

                
    



No.14602

Re:2次元配列について
投稿者---monkey(2004/06/13 14:34:02)


>if文の条件が何を意味しているのかがわかりません。

2次元配列で与えられたデータを

67, 1
43, 1
56, 1

という行列で考えたとき,i行目とj行目の0列目(点数)の大小を比較しています.
(i=0,1,2, j=0,1,2)


No.14604

Re:2次元配列について
投稿者---アルル(2004/06/13 15:38:06)


>>if文の条件が何を意味しているのかがわかりません。
>
>2次元配列で与えられたデータを
>
>67, 1
>43, 1
>56, 1
>
>という行列で考えたとき,i行目とj行目の0列目(点数)の大小を比較しています.



考え方はこのようでしょうか?

if(seiseki[i][0]<seiseki[j][0]) 
        printf("%d %d\n",seiseki[i][0],seiseki[j][0]);


printf()で実行してみました。

43 67
43 56
56 67

これをおしゃってるのですよね?




No.14606

Re:2次元配列について
投稿者---アルル(2004/06/13 15:45:57)


上記は seiseki[i][1]++;

で順位を下げているみたいでした。

難しいです。





No.14607

Re:2次元配列について
投稿者---monkey(2004/06/13 15:58:44)


>>43 67
>>43 56
>>56 67
>>
>> これをおっしゃっているのですよね?

前回のコメントは,単にif文の条件式の意味を説明しただけです.
そういうご質問だったので...

>上記は seiseki[i][1]++;
>
>で順位を下げているみたいでした。

それで良いんですよ.
if文の条件式は,左辺<右辺のときが真で,そのときに小さい方の順位をひとつ下げる(順位を表す値をインクリメント)という操作をしています.


No.14612

Re:2次元配列について
投稿者---アルル(2004/06/13 22:48:31)


>前回のコメントは,単にif文の条件式の意味を説明しただけです.
>そういうご質問だったので...

ごめんなさい。話がとんでしまいました。

>
>>上記は seiseki[i][1]++;
>>
>>で順位を下げているみたいでした。
>
>それで良いんですよ.
>if文の条件式は,左辺<右辺のときが真で,そのときに小さい方の順位をひとつ下げる(順位を表す値をインクリメント)という操作をしています.

ごめんなさい。話がとんでしまいました。
どうもありがとうございました。よかったです。m(._.)m