プロが教えるわが家の防犯対策術!

//単位行列を作る
for(i=0;i<n;i++){
for(j=0;j<n;j++){
array_i[i][j]=(i==j)?1.0:0.0;
}
}
の部分で次の文は何をしているのかがわかりません。
array_i[i][j]=(i==j)?1.0:0.0;


他の文で補えるのでしょうか。


すみませんが、お願いします。

A 回答 (2件)

if(i==j){


 array_i[i][j]=1.0;
} else {
 array_i[i][j]=0.0;
}
でしょう。(全角スペースを使用しています。)
    • good
    • 0
この回答へのお礼

違う文での書き方まで示していただき、ありがとうございました。

お礼日時:2009/10/31 14:15

条件式?値1:値2


と書くと、条件式が真のとき、値1を
条件式が偽のとき、値2を返すようになります。
従って
array_i[i][j]=(i==j)?1.0:0.0;
と言うのは
i==j(行番号と列番号が等しい)とき1.0をそうでないとき0.0を
array_i[i][j]に代入してくれます。
    • good
    • 0
この回答へのお礼

わかりやすい説明でご丁寧にありがとうございます。よくわかりました。

お礼日時:2009/10/31 14:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!