Forの中のforとそのforの中の意味についての質問です。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: Forの中のforとそのforの中の意味についての質問です。

Re: Forの中のforとそのforの中の意味についての質問です。

#5

by box » 3年前

その上のコードに書いた
当方からのコメントを
追いかけてみましたか?

Re: Forの中のforとそのforの中の意味についての質問です。

#4

by 03life » 3年前

box さんが書きました:
3年前
nに3あたりの小さめの数を設定して、
自分がコンピューターになったつもりで
コードを1行ずつ追いかけてみては?
ありがとうございます。自分でもやってみたのですが、それでもまったくわからず質問させていただきました。

Re: Forの中のforとそのforの中の意味についての質問です。

#3

by box » 3年前

nに3あたりの小さめの数を設定して、
自分がコンピューターになったつもりで
コードを1行ずつ追いかけてみては?

Re: Forの中のforとそのforの中の意味についての質問です。

#2

by box » 3年前

この回答の以下の部分の意味が理解できないので解説をお願いしたく質問しました。

コード:


    for (int i = 0; i < n; i++)    // iを0~n-1までn回くり返す
    {
        for (int j = 0; j < n; j++)    // jを0~n-1までn回くり返す(つまりこの2重ループはn*n回まわる)
        {
            if (i==j)    // iとjが等しければ
            {
                x=a[i]+b[j];    // xにa[i]とb[j]の和を代入する
            }else if (a[i]>b[j])    // iとJが等しくなく、a[i]がb[j]より大きければ
            {
                x=a[i];    // xにa[i]を代入する
            }else    // iとjが等しくなく、a[i]がb[j]以下ならば
            {
                x=b[j];    // xにb[j]を代入する
            }
            if (p>x)    // pがxよりも大きければ
            {
                p=x;    // pにxを代入する
            }
        }
    }
    printf("%d\n",p);    // pの値を出力する

Forの中のforとそのforの中の意味についての質問です。

#1

by 03life » 3年前


https://atcoder.jp/contests/abc194/tasks/abc194_b

この問題で次のような回答をみつけました。

コード:

#include<stdio.h>
void main(void){
    int n,a[1000],b[1000],A_MIN=100000,B_MIN=100000,p=100000,x;
    scanf("%d",&n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d %d",&a[i],&b[i]);
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i==j)
            {
                x=a[i]+b[j];
            }else if (a[i]>b[j])
            {
                x=a[i];
            }else
            {
                x=b[j];
            }
            if (p>x)
            {
                p=x;
            }
        }
    }
    printf("%d\n",p);
}
この回答の以下の部分の意味が理解できないので解説をお願いしたく質問しました。

コード:


    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (i==j)
            {
                x=a[i]+b[j];
            }else if (a[i]>b[j])
            {
                x=a[i];
            }else
            {
                x=b[j];
            }
            if (p>x)
            {
                p=x;
            }
        }
    }
    printf("%d\n",p);
    

ページトップ