【问题标题】:User inputs 3x3 Matrix in C++用户在 C++ 中输入 3x3 矩阵
【发布时间】:2018-03-19 04:35:29
【问题描述】:

我有以下代码

#include <iostream>

using namespace std;

int main()
{
    double v[3];
    double M[3][3];
    int i,j;

    cout << "Enter in the components of vector v:\n";

    for(i=0; i<3; i++)
    {
        cout << "Component " << i+1 << ": ";
        cin >> v[i];
    }

    cout << "Enter in the elements of matrix M:\n";

    for(i=0; i<3; i++)
    {
        for(j=0; j<3; j++)
        {
            cin >> M[i][j];
        }
    }

    double Mv[3];

    Mv[0] = (M[0][0] * v[0]) + (M[0][1] * v[1]) + (M[0][2] * v[2]);
    Mv[1] = (M[1][0] * v[0]) + (M[1][1] * v[1]) + (M[1][2] * v[2]);
    Mv[2] = (M[2][0] * v[0]) + (M[2][1] * v[1]) + (M[2][2] * v[2]);

    cout << "The product of Mv is: " << Mv[3] << endl;
    return 0;
}

当用户输入矩阵的元素时,它只是转到下一行等等......

我怎样才能使它在用户输入代码时显示实际矩阵,而不仅仅是 9 个元素的列表。

【问题讨论】:

  • 我假设问题是你输入了一个数字,然后按下 Enter 键(这是告诉终端程序将输入发送到你的程序),这会将光标放在下一个线?除非您想手动定位光标(这不是 C++ 所做的,但必须由第 3 部分库或特定于操作系统的代码处理),否则您实际上无法从您的程序中做任何事情。
  • 哦,当您尝试打印数组 Mv 时遇到一个错误,导致 未定义行为。你需要一个循环来打印数组。
  • 你首先需要一个调试器。
  • 如何一次读取一行作为字符串,然后使用strtok()sscanf() 之类的内容解析字符串?

标签: c++ arrays calculator matrix-multiplication


【解决方案1】:

这取决于用户。用户可以输入带有空格和换行符的 3x3 矩阵的元素(在 3 个元素之后):

【讨论】:

  • 这是我的荣幸。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-19
  • 1970-01-01
相关资源
最近更新 更多