Esercizio vettori con elementi ripetuti

di il
1 risposte

Esercizio vettori con elementi ripetuti

Buongiorno a tutti, sono nuovo di questo forum (ma penso che lo userò spesso per chiedere qualche consiglio, dato il mio rapporto problematico con l'informatica!). Volevo chiedere un aiuto su un esercizio che mi dice di acquisire un vettore di N elementi -N predefinito- per poi controllare se ci sono valori ripetuti: nel caso in cui ci siano, stamparli con relative occorrenze. Ecco il codice che avevo abbozzato:

#include <stdio.h>
#include <stdlib.h>
#define N 8

int main()
{
int v[N], i, j, uguale, u[N], p=0;
int flag = 0;


uguale = 0;


printf("Inserire i valori del vettore: \n");
for(i=0; i<N; i++) {
scanf("%d", &v);
}

printf("\n");
printf("\n");

printf("Il vettore inserito e': ");
for(i=0; i<N; i++) {
printf("%d ", v);
}

for(i=0; i<N; i++) {
for(j=0; j<i+1; j++) {
if (v[j] == v && i != j) {
u[uguale] = v;
uguale++;
}
}
}

printf("\n");
printf("\n");

if (uguale != 0) {
printf("Nel vettore ci sono elementi ripetuti:\n");
for(p=0; p<uguale; p++) {
flag = 1;
if(flag == 1) {
printf("%d ripetuto %d volte\n", u[p], uguale);
} flag = 0;
}
} else {
printf("Nel vettore non ci sono elementi uguali tra loro ");
}


printf("\n");
return 0;
}

Il problema però è mi visualizza i numeri ripetuti, ma se per esempio metto 3 elementi ripetuti 2 volte ciascuno lui mi dice che invece ciascuno è ripetuto 6 volte (3*2)... Qualcuno può essere così gentile e paziente da darmi una mano? Grazie

1 Risposte

  • Re: Esercizio vettori con elementi ripetuti

    Ciao,
    da una veloce occhiata al codice direi che hai almeno due possibilità:
    - dato che ricopi in un altro vettore i valori che si ripetono, puoi fare un controllo scorrendo quel vettore per vedere se un certo numero è già stato considerato
    - dopo che hai considerato ogni numero, lo poni a un valore convenzionale (ad esempio -1) per dire "l'ho già considerato e non lo devo più guardare"
Devi accedere o registrarti per scrivere nel forum
1 risposte