Informática, perguntado por Vitorrlopess, 1 ano atrás

Preencha um vetor com 20 posições usando números aleatórios entre 0 e 5. Mostre o vetor, conte e imprima quantas ocorrências de cada número o vetor possui.


EM C#

Soluções para a tarefa

Respondido por rsps
1
Usando LINQ:

using System;using System.Linq;
namespace MeuNamespace{    class Program    {        static void Main(string[] args)        {            var meuVetor = new int[20];            var gerador = new Random();

            for(int index = 0; index < meuVetor.Length; index++)            {                meuVetor[index] = gerador.Next(0, 6); // gera um aleatorio [0,6[            }
            var elementosAgrupados = meuVetor.GroupBy(num => num).OrderBy(grupo => grupo.Key); // agrupa os elementos pelo valor e os ordena                        Console.WriteLine("Vetor: {0} ", string.Join(",", meuVetor)); // imprime o vetor separando os elementos por vírgula
            foreach (var grupo in elementosAgrupados)            {                Console.WriteLine("Elemento: {0} | Qtd de Aparicoes: {1}", grupo.Key, grupo.Count()); // para cada grupo, exibe o grupo e a quantidade            }
            Console.ReadKey(); // caso seja um app de console, aguarda até usuário interagir com o teclado        }    }}

rsps: Se optar por não usar linq, pode-se criar um dicionário:
var listaDeRepeticoes = new Dictionary(); // cria um dicionario no formato NUMERO, QTD_REPETICOES
rsps: Adicionar os números do vetor e, caso o dicionário já o contenha, somar 1:

foreach (var numero in meuVetor)
{if (listaDeRepeticoes.ContainsKey(numero))
{
listaDeRepeticoes[numero] += 1; // adiciona 1 caso o numero ja tenha sido inserido
}
else
{
listaDeRepeticoes.Add(numero, 1); // adiciona o numero com o contador 1
}
}
rsps: e imprimi-los:

Console.WriteLine("Vetor: {0} ", string.Join(",", meuVetor)); // imprime o vetor separando os elementos por vírgula
foreach (var elem in listaDeRepeticoes)
{
Console.WriteLine("Elemento: {0}, Repeticoes: {1}", elem.Key, elem.Value); // imprime a chave (numero), valor (qtd_repeticoes)
}
rsps: * A parte da geração do vetor mantém-se igual
Perguntas interessantes