亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為什么會運行失敗 哪里錯了

#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;? ??

}

哪里錯了 我搞不明白呀

正在回答

2 回答

?同樣的問題么?那我也把剛剛的回答再發一遍吧。

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

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

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


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

if應該是等號==而不是賦值號=

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

海問香00 提問者

把if里面的去掉就能運行了 不過結果是45 為什么不是25呢
2019-02-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么會運行失敗 哪里錯了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號