ここから本文です

main() { int a=5,b=7,c=2

yel********さん

2010/7/819:20:43

main()
{
int a=5,b=7,c=2

a-=b/c;
c+=b-a%c;
a=(c-b)*a;
printf("%d",a);
}
この答えが4になる理由を教えてください。解説お願いします

閲覧数:
195
回答数:
2

違反報告

ベストアンサーに選ばれた回答

rhi********さん

2010/7/819:49:38

main()_//_お願い:_int_main(void)_と書いて!
{
int_a=5,b=7,c=2_//_エラー:_;_がない!

a-=b/c;_________//_a_=_a-b/c_=_5-7/2_=_5-3_=_2
c+=b-a%c;_______//_c_=_c+b-a%c_=_2+7-2%2_=_9
a=(c-b)*a;______//_a_=_(9-7)*2_=_4
printf("%d",a);_//_printf("%d",4);
//_エラー:_return_0;_がない!
}

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

qwe********さん

2010/7/820:12:07

a-=b/cは
a=a-b/cと同じで
5-7/2で2になります。四則演算では引き算よりも割り算を先に計算します。
そして変数a,b,cは整数型ですの7/2は3.5ではなく3になります。
a-=b/cの計算の後はa=2,b=7,c=2になります。

c+=b-a%cは
c=c+b-a%cと同じになります。
%は余りを求める演算子で足し算・引き算よりも先に計算します。
2+7-2%2でcは9になります。a,bは変化しません。

(c-b)*aとc-b*aの違いはわかりますか。(c-b)*aだと括弧内の計算が掛け算よりも優先されます。
c-bは9-7で2になります。aは2なので2*2で4になります。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる