我想知道要查找用户输入的号码,以便打印号码。这个想法是从左到右,从上到下,从下到上阅读。到目前为止,这是我的代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace opgave1
{
class Program
{
static void Main(string[] args)
{
int R = 8;
int K = 10;
int[,] matrix = new int[R, K];
PrintMatrix(matrix, R, K);
Console.Write("give a number: ");
int nummer = int.Parse(Console.ReadLine());
//TODO TDO TODOOD
Console.ReadKey();
}
private static void PrintMatrix(int[,] matrix, int R, int K)
{
Random random = new Random();
for (int h = 0; h < R; h++)
{
for (int k = 0; k < K; k++)
{
matrix[h, k] = random.Next(1, 101);
Console.Write("{0,3}", matrix[h, k]);
}
Console.WriteLine();
}
}
}
}
答案 0 :(得分:0)
在主程序中将Console.ReadKey()替换为:
int num = Convert.ToInt32(Console.ReadLine());
解决这个问题的一种方法是通过蛮力。在嵌套循环中遍历整个矩阵,逐个查找元素。在C#中,你不需要传递数组的长度和宽度,因此跳过你在PrintMatrix()
函数中使用的R和K,并从输入矩阵本身计算它。
private static void Print(int[,] matrix, int num)
{
Random random = new Random();
int R = matrix.GetLength(0);
int K = matrix.GetLength(1);
for (int h = 0; h < R; h++)
{
for (int k = 0; k < K; k++)
{
if(matrix[h, k] == num)
Console.Write("{0,1}", h,k);
}
Console.WriteLine();
}
}
另一种方法是使用hashmap,您可以在其中预处理创建的矩阵并将矩阵元素保存为键,将索引保存为值。