-2
I need help to perform this exercise in c#:
- Create a program that counts the number of times each element occurs in an integer vector of N. For example, in vector A:
A = {4,2,5,4,3,5,2,2,4}
4 occurs three times; 2 occurs three times; etc.
-2
I need help to perform this exercise in c#:
- Create a program that counts the number of times each element occurs in an integer vector of N. For example, in vector A:
A = {4,2,5,4,3,5,2,2,4}
4 occurs three times; 2 occurs three times; etc.
1
I arrived at this solution, hope to help!
static void Ex_28()
{
Console.WriteLine("\n______ Ex 28 ______\n");
Console.Write("Insira a quantidade de elementos a serem armazenados na matriz: ");
int qtdeElementos = Convert.ToInt16(Console.ReadLine());
int[] arrayElementos = new int[qtdeElementos];
Console.WriteLine("Insira {0} elementos na matriz: ", qtdeElementos);
int elementos = 0;
int frequencia = 1;
while(elementos < qtdeElementos)
{
Console.Write("elemento {0}: ",elementos);
arrayElementos[elementos] = Convert.ToInt16(Console.ReadLine());
elementos ++;
}
Array.Sort(arrayElementos);
Console.WriteLine("A Frequência de todos os elementos da Matriz: ");
for(int i = 0; i < arrayElementos.Length ; i++)
{
if(i < arrayElementos.Length-1)
{
if(arrayElementos[i] == arrayElementos[i+1])
frequencia++;
else
{
if(frequencia > 1)
Console.WriteLine($"{arrayElementos[i]} ocorre {frequencia} vezes");
else
Console.WriteLine($"{arrayElementos[i]} ocorre {frequencia} vez");
frequencia = 1;
}
}
else
{
if(frequencia > 1)
Console.WriteLine($"{arrayElementos[i]} ocorre {frequencia} vezes");
else
Console.WriteLine($"{arrayElementos[i]} ocorre {frequencia} vez");
frequencia = 1;
}
}
Console.ReadKey();
}
1
You can use LINQ. Make a code simple, readable, enjoyable and enjoy the free time to go for a coffee.
Read this answer to understand how the method works GroupBy
, in it has everything explained and any more specific doubt you can leave a comment.
In this answer is another example of the use of GroupBy
.
static void Main()
{
var a = new [] { 4, 2, 5, 4, 3, 5, 2, 2, 4 };
var group = a.GroupBy(i => i).Select(e => new
{
Numero = e.Key,
Contagem = e.Count()
});
foreach(var g in group)
Console.WriteLine($"O número {g.Numero} aparece {g.Contagem} vezes no array");
}
0
Sometimes I like to ask these questions of exercises that appear, only for memories of college, but I’m afraid to, instead of helping, disturb you (giving you a glue to solve the task).
As I imagine there are limitations to the content... I did using only array
, for
and int
.
I hope you can understand and learn the code instead of just copy and paste to earn the grade. I don’t have much teaching, but I tried to comment on the code to be clearer:
public class Program
{
public static void Main()
{
int[] vetor = new int[] {4,2,5,4,3,5,2,2,4}; //Vetor informado
int[] ns = new int[vetor.Length]; //Vetor que vai armazenar os números contados, de forma distinta
int nDistintos = 0; //Variável para armazenar a quantidade de números distintos
for (int i = 0; i < vetor.Length; i++) //Percorrer todo o vetor
{
int flagRepetido = 0; //flag para controlar se o número já foi contado
for (int k = 0; k < nDistintos; k++) //Percorrer o vetor de números já contados
{
if (ns[k] == vetor[i])
flagRepetido = 1; //Se o número atual já estiver no vetor de números contados, marca a flag como 1
}
if (flagRepetido == 0) //Se a flag for 0, conta...
{
int q = 0; //Variável pra somar toda vez que o número aparecer no vetor
for (int j = i ; j < vetor.Length; j++) //Percorro o vetor informado novamente. (Repare que o j inicia com valor de i, pois não é necessário percorrer os números anteriores que já foram calculados)
{
if (vetor[j] == vetor[i]) //Se o número for igual ao número da posição atual, incrementa a váriavel
q++;
}
ns[nDistintos] = vetor[i]; //Armazeno o número que foi calculado
nDistintos++; //incremento a variável de números distintos
Console.WriteLine("Numero " + vetor[i] + " aparece " + q + " vezes");
}
}
}
}
Upshot:
Numero 4 aparece 3 vezes
Numero 2 aparece 3 vezes
Numero 5 aparece 2 vezes
Numero 3 aparece 1 vezes
See on Dotnetfiddle
ps. I also made one that stores all calculations for later print: Dotnetfiddle
Browser other questions tagged c#
You are not signed in. Login or sign up in order to post.
old i don’t know C# but the shape I visualized is like this: You count how many numbers have the vector and check one by one and by on the variable type
for A[1] to N do
 if A[1] = A[2] then
 S := A[1] ocorre N vezes;
mostre S
– Edu Mendonça
tried some code ? there is some limitation imposed by the programmatic content ?
– Rovann Linhalis
Here is another similar question and other approaches for you to study https://answall.com/questions/271802/verifi-numero-repeating-dentro-do-array-c
– Leandro Angelo
Possible duplicate of check repeated number within array c#
– Leandro Angelo