第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么答案是45

為什么答案是45

#include <stdio.h>

int main()

{

? ? int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};

? ? int i,j;

? ? int sum=0;

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

? ? {

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

? ? ? ? {

? ? ? ? ? ? if(arr[0][0]||arr[0][2]||arr[1][1]||arr[2][0]||arr[2][2])

? ? ? ? ? ? {

? ? ? ? ? ? ? ? sum+=arr[i][j];

? ? ? ? ? ? }

? ? ? ? }

? ? ? ?

? ? ? ?

? ? ? ?

? ? ? ?

? ? }

? ? printf("對角線元素之和是:%d\n",sum);

? ? return 0;? ??

}


正在回答

1 回答

判斷語句if()括號里的條件表達式寫得不對。你想的是把你全部列出來的元素累加起來,但是實際上if()語句執(zhí)行的情況是,判斷括號里的表達式的結(jié)果是真還是假,因為你寫的是邏輯或,所以只要有一個值不為0那么表達式的結(jié)果就是真,那么就會執(zhí)行if()后面的語句,所以你這樣寫的結(jié)果是把所有的數(shù)組元素都累加了一遍。

可以觀察對角線元素的下標的特點,一個是行等于列,一個是行加列等于2,所以可以把if()語句寫成這樣:

?if(i?==?j?||?(i?+?j)?==?2)


0 回復 有任何疑惑可以回復我~
#1

海問香00 提問者

什么是“只要有一個值為0那么表達式的結(jié)果就是真。”呀。沒明白這句話的意思 我的邏輯是正常執(zhí)行的話不是遇到這幾個其中任意一個就執(zhí)行下面的公式,然后正好是25才對呀。我還是沒明白,能不能再詳細一點。
2019-02-23 回復 有任何疑惑可以回復我~
#2

海問香00 提問者

想了一個點 頭都炸了還沒想出來
2019-02-23 回復 有任何疑惑可以回復我~
#3

白腿小隼熊貓鳥 回復 海問香00 提問者

額,我上面寫的是「因為你寫的是邏輯或,所以只要有一個值不為0那么表達式的結(jié)果就是真,」,再聚焦一下,我寫的是「一個值不為0」,而不是你剛剛回復的「一個值為0」,這兩個的意思就反了哦! 說回你的代碼,你原來的if()的判斷表達式用的是「邏輯或」,也就是那兩條豎線,邏輯或的意思就是只要那兩條豎線的左邊或右邊有一個值不為0(因為0就是邏輯上的假,1是邏輯上的真),那么if()的判斷表達式的結(jié)果就是真,就會執(zhí)行if()后面的語句。根據(jù)實際數(shù)組里的數(shù)據(jù),它們都是不為0的數(shù),所以每次進入if()都判斷為真,都會執(zhí)行if()后面的語句。這樣,可以理解了吧?
2019-02-24 回復 有任何疑惑可以回復我~
#4

白腿小隼熊貓鳥 回復 海問香00 提問者

如果你想執(zhí)行的是「遇到這幾個其中任意一個就執(zhí)行下面的公式」,那么不是用if()來判斷,而是應(yīng)該用switch來判斷呀。if()判斷的是括號里面的值是真還是假,并不是去對比。
2019-02-24 回復 有任何疑惑可以回復我~
#5

海問香00 提問者 回復 白腿小隼熊貓鳥

明白了 謝謝你耐心的回答 我寫的都是非0的 才明白過來
2019-02-24 回復 有任何疑惑可以回復我~
#6

白腿小隼熊貓鳥 回復 海問香00 提問者

不用客氣。共同學習進步更有樂趣嘛!
2019-02-24 回復 有任何疑惑可以回復我~
查看3條回復

舉報

0/150
提交
取消
C語言入門
  • 參與學習       926892    人
  • 解答問題       21442    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

為什么答案是45

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號