【问题标题】:Creating a 3x3 matrix with user input numbers C#使用用户输入数字创建一个 3x3 矩阵 C#
【发布时间】:2013-10-07 09:16:14
【问题描述】:

我试图用 c# 语言创建一个 3x3 矩阵,我知道如何创建矩阵,但我需要用户输入数字的帮助。我希望有人可以帮助我,谢谢。

【问题讨论】:

  • 控制台应用程序/GUI 应用程序?您希望他们以什么形式输入矩阵?
  • 查找Console.ReadLineint.Parse。我假设您知道如何使用几个嵌套的 for 循环。

标签: c#


【解决方案1】:

我将添加一个 while 循环并使用 double.TryParse 来验证用户的输入。使用 BWHazel 的代码:

const int MATRIX_ROWS = 3;
const int MATRIX_COLUMNS = 3;

double[,] matrix = new double[MATRIX_ROWS, MATRIX_COLUMNS];

for (int i = 0; i < MATRIX_ROWS; i++)
{
    for (int j = 0; j < MATRIX_COLUMNS; j++)
    {
        double input;
        Console.Write("Enter value for ({0},{1}): ", i, j);
        while (!double.TryParse(Console.ReadLine(), out input)
        {
            Console.Write("Enter correct value for ({0},{1}): ", i, j);
        }
        matrix[i,j] = input
    }
}

要获取所有行的总数,您可以使用以下 sn-p:

for (int i = 0; i < MATRIX_ROWS; i++) 
{
    // The some for each row
    double sum = 0.0;
    for (int j = 0; j < MATRIX_COLUMNS; j++)
    {
        sum += matrix[i,j];
    }
    Console.WriteLine(string.format("The sum for row {0} is: {1}", i, sum));
}

【讨论】:

  • 这项工作谢谢你,但现在我试图使用循环来获得每一行的总数,如果你能帮助我,我真的很感激。谢谢
  • 我不确定“每一行的总数”是什么意思,但是如果您想在一行上读取一行的所有列,则可以使用:string[] input = Console.ReadLine().Split() 获取所有值并解析数组的元素。
  • 我的意思是我想要每一行的总数,就像第 1 行有 1,2,3 我想要这些数字的总数 (1+2+3)。希望你明白。
【解决方案2】:

如果你使用命令行,这样的东西应该可以工作:

const int MATRIX_ROWS = 3;
const int MATRIX_COLUMNS = 3;

double[,] matrix = new double[MATRIX_ROWS, MATRIX_COLUMNS];

for (int i = 0; i < MATRIX_ROWS; i++)
{
    for (int j = 0; j < MATRIX_COLUMNS; j++)
    {
        Console.Write("Enter value for ({0},{1}): ", i, j);
        matrix[i,j] = double.Parse(Console.ReadLine());
    }
}

这假设您使用double 作为值。 .Parse() 方法适用于所有 .NET 数字类型,包括 int

【讨论】:

  • 这项工作谢谢你,但现在我试图使用循环来获得每一行的总数,如果你能帮助我,我真的很感激。谢谢
【解决方案3】:
    private void button1_Click(object sender, EventArgs e)
    {
        txtResult.Text=GenerateMatrix(Int32.Parse(txtRow.Text), Int32.Parse(txtColumn.Text));
    }
    private string GenerateMatrix(int Row,int Column)
    {
        string matrix = string.Empty;
        string Result = string.Empty;
        int nxtline=0;
        for (int i = 0; i < Row; i++)
        {
            for (int j = 0; j < Column; j++)
            {
                if (nxtline==Column)
                {
                    matrix = matrix + Environment.NewLine;
                    nxtline = 0;
                }
                matrix = matrix+"*";
                nxtline = nxtline + 1;
            }
        }

        Result = matrix;
        return Result;
    }

【讨论】:

    猜你喜欢
    • 2018-03-19
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多