課程
/后端開發
/C
/C語言入門
求大神解答
2019-02-01
源自:C語言入門 6-11
正在回答
可以觀察對角線元素的下標的特點,一個是行等于列,一個是行加列等于2,所以可以把if()語句寫成這樣:
?if(i?==?j?||?(i?+?j)?==?2)
沒有必要去關心元素本身的值。
首先你應該明確對角線元素的下標具有什么特征:
從左上往右下的那條對角線的元素的特征:行列下標相等,如arr[0][0], arr[1][1];
從右上往左下的那條對角線的元素的特征:行列下標之和為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時發現兩個條件均滿足,但只算一次,滿足條件。
你的程序中的=有誤,表賦值,==才是相等,
#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;???? }
這是我的代碼,你看看吧,還有就是==是表判斷,=是賦值
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
7 回答不知道錯在哪里了,運行不了
3 回答求解答啊 不知道哪錯了 運行不出來
1 回答不知道是哪里錯了,運行不了,求解
3 回答不知道哪里錯,也不知道怎么改
2 回答不知道哪里出錯了
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-02-22
可以觀察對角線元素的下標的特點,一個是行等于列,一個是行加列等于2,所以可以把if()語句寫成這樣:
沒有必要去關心元素本身的值。
2019-02-15
首先你應該明確對角線元素的下標具有什么特征:
從左上往右下的那條對角線的元素的特征:行列下標相等,如arr[0][0], arr[1][1];
從右上往左下的那條對角線的元素的特征:行列下標之和為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時發現兩個條件均滿足,但只算一次,滿足條件。
你的程序中的=有誤,表賦值,==才是相等,
2019-02-01
這是我的代碼,你看看吧,還有就是==是表判斷,=是賦值