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

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

不知道哪里錯了。。。運行不出來,什么也沒顯示

https://img1.sycdn.imooc.com//5c53aba000012f4f07350611.jpg求大神解答

正在回答

3 回答

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

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

沒有必要去關心元素本身的值。

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

首先你應該明確對角線元素的下標具有什么特征:

  1. 從左上往右下的那條對角線的元素的特征:行列下標相等,如arr[0][0], arr[1][1];

  2. 從右上往左下的那條對角線的元素的特征:行列下標之和為2,如arr[0][2], arr[1][1];

    你應該根據這個設置判斷條件,你可以用兩個for循環,一個對i,一個對j。

    你可以在紙上畫畫:

    1????2????3

    4????5????6

    7????8????9

    還有你可能有這樣的疑問: 1 + 5 +9 +3 +5+7 = 30, 為什么答案是25?

    因為題目問的是對角線元素之和,你這樣就算多了1次5, 而我們的程序之所以算出的是25,是因為系統一個一個地檢驗元素是否滿足i == j 或者i + j ==2,遇到5時發現兩個條件均滿足,但只算一次,滿足條件。

你的程序中的=有誤,表賦值,==才是相等,

0 回復 有任何疑惑可以回復我~
#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++)
????{
???????sum+=arr[i][i];
????}
????for(i=2;i>=0;i--)
????{
????????sum+=arr[i][2-i];
????}
????printf("對角線元素之和是:%d\n",sum-5);
????return?0;????
}

這是我的代碼,你看看吧,還有就是==是表判斷,=是賦值

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

舉報

0/150
提交
取消

不知道哪里錯了。。。運行不出來,什么也沒顯示

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

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

幫助反饋 APP下載

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

公眾號

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