Salve a tutti! Sto avendo dei problemi nella scrittura di questo programma, in particolare non riesco a trovare il modo di stampare a video la sequenza di numeri senza ripetizioni, dato che trovare la frequenza di apparizione per ciascun elemento è una questione abbastanza elementare. Qualcuno è così gentile da aiutarmi? Sto letteralmente impazzendo! Grazie a tutti!
Il testo dell'esercizio è questo:
"Si sviluppi un programma in linguaggio C che riceva in ingresso una sequenza di al più 100
numeri interi diversi da zero, terminata da uno zero, e mostri a video la sequenza dei numeri distinti
(senza ripetizioni) ricevuti, ciascuno accompagnato dalla frequenza di apparizione nella sequenza
d’ingresso.
Ad esempio, se si riceve la sequenza:
12 10 -8 10 10 12 3 0
il programma dovrà mostrare a video:
12: 28.6%
10: 42.8%
-8: 14.3%
3: 14.3%"
Io sono a questo punto (per ora mi son disinteressato della condizione di fine inserimento se l'utente inserisce 0, prima voglio capire come mandare a video la sequenza senza ripetizioni )
#include <stdio.h>
#define DIM 100
void trovaFrequenza(int vettore[], int dimensione)
{
int i, j;
float frequenza;
float percentuale;
for(i=0; i<dimensione; i++)
{
frequenza = 0;
for(j=0; j<dimensione; j++)
{
if(vettore[i] == vettore[j])
frequenza++;
}
percentuale = (frequenza/dimensione)*100;
}
printf("[%d]: %.2f\n", vettore[i], percentuale);
}
int main()
{
int vettore[DIM];
int i;
int k;
printf("Inserire un vettore di %d interi:\n", DIM);
for(i=0; i<DIM; i++)
{
scanf("%d", &vettore[i]);
}
for(i=0; i<k; i++)
{
printf("[%d]", vettore[i]);
}
trovaFrequenza(vettore, DIM);
return 0;
}