Então, o problema do meu código é que não está preenchendo o vetor totalmente, fica com espaços vazios e acaba deixando a Matriz com zeros, eu tentei usar mais um vetor para armazenar os números repetidos mas não deu certo. A parte de não entrar número iguais esta funcionando.
segue o código:
int[,] Matriz = new int[10, 10];
Random r = new Random();
int x = 0, z = 0, y = 0;
bool encontrou = false;
int[] Vetor = new int[10 * 10];
int[] Repetidos = new int[10 * 10];
int c = 0;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
int num = r.Next(-50, 100);
bool achou = false;
foreach (int elemento in Vetor)
{
if (elemento == num)
{
achou = true;
Repetidos[c] = num; // Tentativa para solucionar o problema, não é importante!
c++;
}
}
if (achou == false)
{
Vetor[c] = num;
Console.WriteLine($" número{c} do {Vetor[c]} "); //Para saber nos testes se está preenchendo todas posições.
Matriz[i, j] = num;
c++;
}
}
}
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
Console.WriteLine($"O número na {i + 1} linha e {j + 1} coluna é {Matriz[i, j]}");
}
}
Console.WriteLine("Digite um número a ser procurado na Matriz:");
x = Convert.ToInt32(Console.ReadLine());
Console.Write("\n");
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (x == Matriz[i, j])
{
z = i + 1;
y = j + 1;
encontrou = true;
}
}
}
if (encontrou == true)
{
Console.WriteLine($"O número {x} foi encontrado na {z}ª linha e {y}ª coluna da Matriz!");
}
else
{
Console.WriteLine($"O número {x} não foi encontrado na Matriz!");
}
Console.ReadKey();