給定一個n×n的方陣,本題要求計算該矩陣除副對角線、最后一列和最后一行以外的所有元素之和。副對角線為從矩陣的右上角至左下角的連線。
輸入格式:
輸入第一行給出正整數(shù)n(1<n≤10);隨后n行,每行給出n個整數(shù),其間以空格分隔。
輸出格式:
在一行中給出該矩陣除副對角線、最后一列和最后一行以外的所有元素之和。
輸入樣例:
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
輸出樣例:
35
代碼長度限制
16 KB
時間限制
400 ms
內(nèi)存限制
64 MB
解題
這道題有兩個常見的實現(xiàn)方法,第一個是直接計算。
注意:并非去除最后一行,最后一列和副對角線,而是計算和的時候,不加這三個條件下的數(shù)字。
#include <stdio.h>
int main(){
int answer=0,n=0,i=0,j=0;
scanf("%d",&n);
int a[n][n];
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
if(i!=n-1 && j!=n-1 && j!=n-1-i) //最后一行、最后一列、副對角線的角標(biāo)
{
answer+=a[i][j];
}
}
}
printf("%d",answer);
return 0;
}
這個方法就比較巧。
然而除此之外,還可以通過觀察,比較費眼睛:
文章來源:http://www.zghlxwxcb.cn/news/detail-753290.html
其實都一樣,也是三個條件,這個更有邏輯一些,可以參考類比一下。文章來源地址http://www.zghlxwxcb.cn/news/detail-753290.html
#include<stdio.h>
int main() {
int n;
scanf("%d", &n);
int a[100][100] = { 0 };
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
int sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i + j == n - 1) continue;
if (i == n - 1) continue;
if (j == n - 1) continue;
sum += a[i][j];
}
}
printf("%d", sum);
}
到了這里,關(guān)于給定一個n×n的方陣,本題要求計算該矩陣除副對角線、最后一列和最后一行以外的所有元素之和。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!