課程
/后端開發(fā)
/C
/C語言入門
大家看看哪里有問題
2020-03-10
源自:C語言入門 6-11
正在回答
你的J沒有進(jìn)行循環(huán)遍歷
你少了個對j的遍歷,也就是這樣
#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(i==j){???????????????? ????????????????sum?+=?arr[i][i];???????????? ????????????????}???????????? ????????????if(i-j==2||i-j==-2){???????????????? ????????????????sum?+=?arr[i][j];????????????? ????????????????}???????? ????????}??????????? ????}???? ????printf("對角線元素之和是:%d\n",sum);???? ????return?0;???? }
從設(shè)計角度上來說更容易擴(kuò)展,當(dāng)length不固定時,對于正矩形來說這種方法更合適。%2這個可能就被限制在length=3的死角了。附上正矩形對角線之和的代碼:
#include <stdio.h>
int main()
{
? ? int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
? ? int i,j;
? ? int sum=0;
? ? int length = 3;
? ? for(i=0;i<length;i++)
? ? {
? ? ? ?for(j=0;j<length;j++) {
? ? ? ? ? ?if(i == j || i == length-1-j) {
? ? ? ? ? ? ? ?sum += arr[i][j];
? ? ? ? ? ?}else {
? ? ? ? ? ? ? ?continue;
? ? ? ? ? ?}
? ? ? ?}
? ? }
? ? printf("對角線元素之和是:%d\n",sum);
? ? return 0;? ??
}
另外分享本人自寫正確代碼:
? ? int a;
? ? for(i=0;i<3;i++)
? ? ?for(j=0;j<3;j++)
? ? ? {
? ? ? ? ?if(arr[i][j]%2!=0)
? ? ? ? ?sum+=arr[i][j];
? ? ? }
? ? ??
我發(fā)現(xiàn)2個問題。
1:你的j一直定義為0,并沒有出現(xiàn)j自增,從始至終沒有變化j始終為0.所有不對。
2:第九行的if(i=j)寫錯。要表達(dá)自身應(yīng)出現(xiàn)兩個。正確為if(i==j).
if(i+j==2 || i==j)
我看不出來你的問題
但是我提供一下我的思路? 就是? (i+j)%2=0
舉報
C語言入門視頻教程,帶你進(jìn)入編程世界的必修課-C語言
2 回答不知道哪里有問題
4 回答不知道哪里有問題
1 回答請大家看看哪里有問題
1 回答大家知道為什么么
1 回答求解 不知道哪里有問題
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2020-07-29
你的J沒有進(jìn)行循環(huán)遍歷
2020-04-05
你少了個對j的遍歷,也就是這樣
2020-03-19
從設(shè)計角度上來說更容易擴(kuò)展,當(dāng)length不固定時,對于正矩形來說這種方法更合適。%2這個可能就被限制在length=3的死角了。附上正矩形對角線之和的代碼:
#include <stdio.h>
int main()
{
? ? int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
? ? int i,j;
? ? int sum=0;
? ? int length = 3;
? ? for(i=0;i<length;i++)
? ? {
? ? ? ?for(j=0;j<length;j++) {
? ? ? ? ? ?if(i == j || i == length-1-j) {
? ? ? ? ? ? ? ?sum += arr[i][j];
? ? ? ? ? ?}else {
? ? ? ? ? ? ? ?continue;
? ? ? ? ? ?}
? ? ? ?}
? ? }
? ? printf("對角線元素之和是:%d\n",sum);
? ? return 0;? ??
}
2020-03-16
另外分享本人自寫正確代碼:
#include <stdio.h>
int main()
{
? ? int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
? ? int i,j;
? ? int sum=0;
? ? int a;
? ? for(i=0;i<3;i++)
? ? {
? ? ?for(j=0;j<3;j++)
? ? ? {
? ? ? ? ?if(arr[i][j]%2!=0)
? ? ? ? ?sum+=arr[i][j];
? ? ? }
? ? ??
? ? }
? ? printf("對角線元素之和是:%d\n",sum);
? ? return 0;? ??
}
2020-03-16
我發(fā)現(xiàn)2個問題。
1:你的j一直定義為0,并沒有出現(xiàn)j自增,從始至終沒有變化j始終為0.所有不對。
2:第九行的if(i=j)寫錯。要表達(dá)自身應(yīng)出現(xiàn)兩個。正確為if(i==j).
2020-03-15
if(i+j==2 || i==j)
2020-03-10
我看不出來你的問題
但是我提供一下我的思路? 就是? (i+j)%2=0