C#控制台应用程序创建一个用户定义的矩阵并找到最低数字
本文关键字:数字 定义 用户 创建 应用程序 控制台 一个 | 更新日期: 2023-09-27 18:25:48
编写一个C#控制台应用程序来创建一个用户定义的矩阵,该矩阵不包含行&列和值&找到最低的数字&如果用户输入的不是数字,它只接受数字,它警告用户只输入数字
例如:
输入行数:(系统)
2(用户)
输入列数:(系统)
2(用户),
输入行值1:20
输入行值2:4
输入列值1:30
输入列值2:20
最低数字为:4
请帮我解决这个问题。
将其放在"main"方法之外,以确保用户给出一个数字。
private static int GetNumber(string request)
{
bool succeeded = false;
Console.WriteLine(request);
string reply="";
while(!succeeded)
{
reply = Console.ReadLine();
try
{
int.Parse(reply);//Attempt to convert "reply" into an integer.
succeeded = true;
}
catch
{
Console.WriteLine(request+" (make it a number)");
}
}
return int.Parse(reply);
}
然后用这个作为你的主要方法。
public static void Main()
{
int rows = GetNumber("Enter no of Rows:");
int columns = GetNumber("Enter no of Columns:");
int[,] matrix = new int[rows,columns];
for(int row = 0; row < rows; row++)
{
for (int column = 0; column < columns; column++)
{
matrix[row,column] = GetNumber("Enter value for sector Row: "+(row+1)+" Column: "+(column+1));
}
}
int smallestnumber = matrix[0,0];
for(int row = 0; row < rows; row++)
{
for (int column = 0; column < columns; column++)
{
if(matrix[row,column] < smallestnumber)
{
smallestnumber = matrix[row,column];
}
}
}
Console.WriteLine("Lowest number is: "+smallestnumber);
}
我在这里自由地说,你的例子说"输入行值1…输入列值2",但是矩阵中的每个单独的值都由一行和一列表示。
你没有指出你遇到问题的特定部分,但检查用户输入的int可能很棘手。以下是我所做的检查用户输入的值是否是一个数字:
string row;
Console.WriteLine("Enter number of rows");
while (Int32.TryParse(Console.ReadLine(), out row) == false)
{
Console.WriteLine("Please enter a numeric value");
}
Console.WriteLine("You selected {0} rows", row);
我也会使用int类型的泛型列表,而不是矩阵,因为一开始你不知道数组会包含多少元素。通用列表允许您在没有问题的情况下将项目添加到列表中,甚至可以使用
int max = MyList.Min();
找到最低的数字非常容易。
首先,您必须创建一个采用动态值的矩阵;然后取两个for循环:i,j;然后取一个临时变量;将第一个值存储在给定的数组中,然后将数组中的所有值与临时变量进行比较。