為什么會(huì)運(yùn)行失敗 哪里錯(cuò)了
#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("對(duì)角線元素之和是:%d\n",sum);
? ? return 0;? ??
}
哪里錯(cuò)了 我搞不明白呀
2019-02-22
?同樣的問題么?那我也把剛剛的回答再發(fā)一遍吧。
判斷語句if()括號(hào)里的條件表達(dá)式寫得不對(duì)。你想的是把你全部列出來的元素累加起來,但是實(shí)際上if()語句執(zhí)行的情況是,判斷括號(hào)里的表達(dá)式的結(jié)果是真還是假,因?yàn)槟銓懙氖沁壿嫽?,所以只要有一個(gè)值不為0那么表達(dá)式的結(jié)果就是真,那么就會(huì)執(zhí)行if()后面的語句,所以你這樣寫的結(jié)果是把所有的數(shù)組元素都累加了一遍。
可以觀察對(duì)角線元素的下標(biāo)的特點(diǎn),一個(gè)是行等于列,一個(gè)是行加列等于2,所以可以把if()語句寫成這樣:
2019-02-19
if應(yīng)該是等號(hào)==而不是賦值號(hào)=