📜  C ++程序来查找两条对角线之和之间的差异(1)

📅  最后修改于: 2023-12-03 14:39:39.379000             🧑  作者: Mango

查找两条对角线之和之间的差异

在一个矩阵中,有两条对角线,一条从左上角到右下角,一条从右上角到左下角。这两条对角线上的数字之和可以计算出来,现在需要编写一个C++程序,找出这两条对角线之和之间的差异。

程序设计思路

该程序的主要思路如下:

  1. 输入矩阵的行列数,并用数组存储矩阵中的数据。
  2. 遍历数组,计算出两条对角线上的数字之和。
  3. 对两条对角线之和进行比较,找出它们之间的差异。
  4. 输出差异值。
程序实现过程
输入行列数和矩阵

首先,需要从用户处获取矩阵的行列数和矩阵中的数据。可以使用如下代码实现:

#include<iostream>
using namespace std;

int main() {
    int n,m;
    cout<<"请输入矩阵的行数和列数: ";
    cin>>n>>m;
    int a[n][m];
    cout<<"请输入矩阵的数据:"<<endl;
    for(int i=0;i<n;i++) {
        for(int j=0;j<m;j++) {
            cin>>a[i][j];
        }
    }
    return 0;
}
遍历数组并计算对角线之和

接下来,需要遍历数组并计算出两条对角线的数字之和。可以使用如下代码:

int d1=0,d2=0;
for(int i=0;i<n;i++) {
    for(int j=0;j<m;j++) {
        if(i==j) {
            d1+=a[i][j];
        }
        if(i+j==n-1) {
            d2+=a[i][j];
        }
    }
}
计算差异值并输出

最后,需要计算出两条对角线之和的差值,并输出结果。可以使用如下代码:

int diff;
if(d1>d2) {
    diff=d1-d2;
} else {
    diff=d2-d1;
}
cout<<"两条对角线之和的差是:"<<diff<<endl;
完整代码
#include<iostream>
using namespace std;

int main() {
    int n,m;
    cout<<"请输入矩阵的行数和列数: ";
    cin>>n>>m;
    int a[n][m];
    cout<<"请输入矩阵的数据:"<<endl;
    for(int i=0;i<n;i++) {
        for(int j=0;j<m;j++) {
            cin>>a[i][j];
        }
    }
    int d1=0,d2=0;
    for(int i=0;i<n;i++) {
        for(int j=0;j<m;j++) {
            if(i==j) {
                d1+=a[i][j];
            }
            if(i+j==n-1) {
                d2+=a[i][j];
            }
        }
    }
    int diff;
    if(d1>d2) {
        diff=d1-d2;
    } else {
        diff=d2-d1;
    }
    cout<<"两条对角线之和的差是:"<<diff<<endl;
    return 0;
}
总结

以上便是C++程序查找两条对角线之和之间的差异的整个过程,通过这个简单的程序,可以更好的理解C++语言的基本语法,同时也有助于提高编程能力。