Sei que é com um contador, mas sinceramente já não me recordo como se faz.Verifique a distribuição de frequência de 5 valores inseridos pelo utilizador.
Alguém me pode dar uma ajuda?
Cumps
Última edição:
Sei que é com um contador, mas sinceramente já não me recordo como se faz.Verifique a distribuição de frequência de 5 valores inseridos pelo utilizador.
começa por definir o que queres dizer com "distribuição de frequência".
#include <iostream.h>
main(){
int v[5];
int y,x,i,cont;
for (i=0;i<5;i++){
printf ("Digite o %d numero: ",i+1);
scanf ("%d",&v);
}
for (x=0; x < 5; x++) {
cont = 0;
for (y=0; y < 5; y++) {
if (v[x] == v[y]) cont++;
}
if(cont==1){
printf("");}
else{
printf ("O numero %d repete %d vezes\n", v[x], cont-1);
}
}
system ("pause");
}
para x=0:
para y=0: 1==1 // é o próprio
count=1.
para y=1.
para y=2.
para y=3.
para y=4.
// até aqui tudo bem
para x=1:
para y=0:
para y=1. 3==3
count=1.
para y=2. 3==3
count=2.
para y=3. 3==3
count=3.
para y=4.
imprimir que o 3 está repetido 3x
// aqui continua tudo bem
para x=2: // mas já sabemos que o x=2 é um 3 e que está repetido com 3x, se continuarmos vamos estar a reverificar que está repetido.
para y=1. 3==3
count=1.
para y=2. 3==3
count=2.
para y=3. 3==3
count=3.
para y=4.
imprimir que o 3 está repetido 3x // como previsto
para x=3 .....
Digite o 1 numero: 1Digite o 2 numero: 3
Digite o 3 numero: 3
Digite o 4 numero: 3
Digite o 5 numero: 4
O numero 3 repete 2 vezes
O numero 3 repete 2 vezes
O numero 3 repete 2 vezes
C++ é um superset de C, e estas coisas mais básicas é em tudo igual ao C. Neste código não há nada especifico do C++.no meu curso damos C++ invez de C, contudo, se for pela logica de C++ tens o programa mal... nao sei se o C funciona da mesma maneira que o C++ mas nao devo estar errado... se for pela logica do C++ (e este foi o meu primeiro ano de C++) , nao deves abrir um ciclo FOR e depois declarares o contador a 0 e depois abrires outro..., para isso, das duas uma, ou declaras no sitio da declaracao das variaveis, ou dentro do teu 3º FOR, fazes :
for(cont=0, y=0; y<5; y++)
acerca do resto da sintaxe, eu se fosse em C++ usaria um Switch Case, nao sei se tens no C essa opcao, mas com o If, é mais complicado... se tiveres a opcao de usar apontadores no C, terias de usar para puderes fazer com o IF...
PS: espero nao ter baralhado nem ter tido nenhuma asneira
if(cont==1){
printf("");}
else{
printf ("O numero %d repete %d vezes\n", v[x], cont-1);
}
if(cont>1){
printf ("O numero %d repete %d vezes\n", v[x], cont-1);
}