Linguagem C: Em uma sequência de 10 números que são gerados de forma aleatória (variando de 5 a 10), escrever qual número mais se repete na sequência e quantas vezes se repetiu. Por favor, explique a lógica que utilizou, obrigado.
Soluções para a tarefa
Respondido por
0
Segue o código em C devidamente comentado:
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
int main ()
{
int numeros[10], contagem[6] = {0,0,0,0,0,0};
//SORTEIRO DOS 10 NÚMEROS
printf("Números sorteados: ");
for(int i=0; i<10; i++)
{
srand(time(NULL));
numeros[i] = (rand() % 6) + 5; //rand sorteia entre 0 e 5, depois soma 5 (fica de 5 a 10)
printf("[%d] ", numeros[i]);
sleep(1); //Atraso para mudar o tempo do pseudo-rand
}
//PROCURA OS NÚMEROS REPETIDOS
for(int num = 5; num <= 10; num++) //Varia de 5 a 10
{
for(int i = 0; i < 10; i++) //procura cada valor em cada posição do vetor
{
if(numeros[i] == num)
{
contagem[num-5]++;
}
}
}
//APRESENTA O RESULTADO
printf("\nRESULTADO:\n");
for(int i= 5; i <= 10; i++)
{
printf("O número %d aparece %d vez(es).\n", i, contagem[i-5]);
}
return 0;
}
Perguntas interessantes