解题思路:
使用while进行推移完成举证对角线相加,但是注意,如果矩形的长度为奇数的时候需要再减去一个位置再中间的数。
参考代码:
#include<bits/stdc++.h> using namespace std; int main() { int n,a[100][100]; int l=0,f=0,sum=0; cin>>n; for(int i=0; i<n; i++) for(int j=0; j<n; j++) cin>>a[i][j]; if(n%2==0) { while(l<n&&f<n) { sum+=a[l][f]; l++; f++; } l=n-1; f=0; while(l>=0&&f<n) { sum+=a[l][f]; l--; f++; } } else { while(l<n&&f<n) { sum+=a[l][f]; l++; f++; } l=n-1; f=0; while(l>=0&&f<n) { sum+=a[l][f]; l--; f++; } sum-=a[n/2][n/2]; } cout<<sum<<endl; return 0; }
0.0分
0 人评分
【计算直线的交点数】 (C语言代码)浏览:2798 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:566 |
C语言训练-求PI* (C语言代码)(正确结果竟然是谜一样的3.141591)浏览:1303 |
点我有惊喜!你懂得!浏览:1341 |
奖学金 (C++代码)浏览:2009 |
C语言训练-排序问题<2> (C++代码)浏览:891 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:608 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1309 |
大神老白 (C语言代码)浏览:649 |
printf基础练习2 (C语言代码)浏览:654 |