第一题:
题目(单对角线和):

分析: 用结构体的话,太麻烦了,专业一点,用本该属于它的知识点来解决它。
代码:
#include <iostream>  
  
using namespace std;  
  
int main() {  
    int n;  
    cin >> n;  
    int matrix[n][n];  
    for (int i = 0; i < n; i++) {  
        for (int j = 0; j < n; j++) {  
            cin >> matrix[i][j];  
        }  
    }  
    int sum = 0;  
    for (int i = 0; i < n; i++) {  
        sum += matrix[i][i];  
    }  
    cout << sum << endl;  
    return 0;  
}第二题:
题目:计算矩阵边缘元素之和
题目来源:http://124.222.71.12/problem.php?id=1089
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
	int m,n,a[101][101];
	int sum=0;
	cin>>m>>n;
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<n;j++)
		{
			cin>>a[i][j];
			if(i==0||i==m-1||j==0||j==n-1)  //非常重要
			{sum = sum +a[i][j];
			}
		}
	}
	cout<<sum;		
	return 0;
 } 重要知识点:
if(i==0||i==m-1||j==0||j==n-1)    //矩阵边缘第三题(双对角线和):
代码:
#include <iostream>  
  
using namespace std;  
  
int main() {  
    int n;  
    cin >> n;  
    int matrix[n][n];  
    if(n%2==0){
	for (int i = 0; i < n; i++) {  
        for (int j = 0; j < n; j++) {  
            cin >> matrix[i][j];  
        }  
    }  
    int sum = 0;  
    for (int i = 0; i < n; i++) {  
        sum += matrix[i][i];  
    }
	 
	for(int i=0;i<n;i++)
	{
		 sum=sum+matrix[i][n-i];
	 } 
    cout << sum << endl; }
    if(n%2==1){for (int i = 0; i < n; i++) {  
        for (int j = 0; j < n; j++) {  
            cin >> matrix[i][j];  
        }  
    }  
    int sum = 0;  
    for (int i = 0; i < n; i++) {  
        sum += matrix[i][i];  
    }
	 
	for(int i=0;i<n;i++)
	{
		 sum=sum+matrix[i][n-i];
	 } 
	sum = sum-matrix[n/2+1][n/2+1];
    cout << sum << endl; }
	 
    return 0;  
}重要知识点:
如果n是奇数,会多加一个二维数组的[n/2+1][n/2+1],所以用if语句判断奇偶。
结语:二维数组大概了解的差不多了,刷题去吧!!!
程序员的必备技能:
有时候自己觉得代码一点问题都没有,连问身边的人也没看出毛病,就说问题出在电脑,出在编辑器,这时候,你要意识到,其实你和电脑,编辑器都没有错,只不过你在输入代码是弄错了一点,需要你仔细仔细仔细仔仔细细的检查一遍,去找出小错误并改正,这是出现程序员的必经之路。 (今天我找一个小错误找了将近一小时,突然想写点东西让自己永远记住。)



















