其實這種題往往規(guī)律性很強,用筆畫一畫相信都能發(fā)現(xiàn)突破口,下面我就講最簡單的方法去求解。
先畫圖
文章來源:http://www.zghlxwxcb.cn/news/detail-506680.html
?無非兩種情況,n*n,n要么是雙數(shù),即對2求余等于0,要么是單數(shù),對2求余不為0;單數(shù)和雙數(shù)的區(qū)別在于,單數(shù)的情況下兩條對角線會有一個交點,當我們計算了一條對角線的總和,另外一條對角線就不需要重復去計算。在此基礎,單雙數(shù)公用一個邏輯,只是單數(shù)比較特別一點,需要減兩條對角線的交點,也就是這里的6。下面看整體代碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-506680.html
#include <stdio.h>
int main()
{
int n=0, i=0, j= 0;
int sum1=0,sum2=0,sum=0;
printf("請輸入數(shù)組的行列數(shù),(n*n只需n)\n");
scanf("%d",&n);
printf("輸入數(shù)組的行列數(shù)為%d*%d\n",n, n);
int arr[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0;i<n;i++)
{
sum1 += arr[i][i];
sum2 += arr[i][n-1-i];
}
if(n%2 == 0)
{
sum = sum1+sum2;
printf("輸入數(shù)組的行列數(shù)為%d*%d的對角線和為%d\n",n, n, sum);
}
else
{
j = n/2;
sum = sum1+sum2-arr[j][j];
printf("輸入數(shù)組的行列數(shù)為%d*%d的對角線和為%d\n",n, n, sum);
}
return 0;
}
到了這里,關于C語言-求矩陣的對角線之和的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!