【问题标题】:How to read matrix and sum them up?如何读取矩阵并总结它们?
【发布时间】:2015-08-08 07:08:41
【问题描述】:

我想做一个编码,它读取一个 4x4 矩阵并将它们求和。我不知道我哪里做错了。我的结果是它不断要求输入元素。我只是想要一个4x4。谁能帮帮我?

#include <iostream>
using namespace std;


const int SIZE = 4;
double sumColumn(const double m[][SIZE], int rowSize, int columnIndex)
{
    int sum = 0;
    for (int i = 0; i<SIZE; i++)
    {
        for (int j = 0; j<SIZE; j++)
        {

            sum = sum + m[i][j];
        }

    }
    return sum;
}
int main()
{
    double m[SIZE][SIZE], sum = 0;
    cout << "Enter the elements of the matrix" << endl;
    for (int i = 0; i<SIZE; i++)
        for (int j = 0; j<SIZE; j++)
            cin >> m[i][j];


    sum = sumColumn(m, SIZE, SIZE);

    cout << sum << endl;


    return 0;
}

【问题讨论】:

  • 你的意思是你一直收到"Enter the elements of the matrix"这个消息?

标签: c++ arrays matrix sum


【解决方案1】:

一个好的做法是使用花括号,即使“for”的内容只有一行,但在你的情况下必须是下一种方式

for (int i = 0; i<SIZE; i++) {
    for (int j = 0; j<SIZE; j++) {
        cin >> m[i][j];
        sum = sumColumn(m, SIZE, SIZE);
    }
}

问候

完整代码为:

#include <iostream>
using namespace std;

const int SIZE = 4;
double sumColumn(const double m[][SIZE], int rowSize, int columnIndex)
{
    int sum = 0;
    for (int i = 0; i<SIZE; i++)
    {
        for (int j = 0; j<SIZE; j++)
        {
            sum = sum + m[i][j];
        }
    }
    return sum;
}
int main()
{
    double m[SIZE][SIZE], sum = 0;
    cout << "Enter the elements of the matrix" << endl;
    for (int i = 0; i<SIZE; i++) 
    {
        for (int j = 0; j<SIZE; j++) 
        {
            cin >> m[i][j];
            sum = sumColumn(m, SIZE, SIZE);
        }
    }
    cout << sum << endl;
    return 0;
}            

【讨论】:

  • 将求和函数调用放在那里会导致未定义的行为,因为它会被部分未初始化的数组调用。
  • 非常感谢你,伙计。谢谢你。上帝祝福你。你是生命的救星。 :')
猜你喜欢
  • 2015-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-07
  • 2019-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多