Frequenza ripetizioni elementi vettore

di il
6 risposte

Frequenza ripetizioni elementi vettore

Buonasera a tutti. Volevo chiedervi se qualcuno potesse spiegarmi l'utilizzo del vettore v2 all'interno di questo programma...grazie della disponibilità
#include <stdio.h>

#define N 10

int main()
{
int v[N];
int v2[N]; /*occurences vector */
int i,j; /* loop index */


/* Fill v1 from input */
printf("Insert %d numbers:\n", N);
for (i = 0; i < N; i++)
{
scanf("%d", &v);
v2=1;
}

/* Check all elements with a loop */
for (i = 0; i < N; i++)
{
/* for each element, check whether there are other elements which are equal. */
for (j = 0; j < i && v2 == 1; j++)
{
if (v[j] == v)
{
/* Duplicate element found */
v2[j] ++; /*occurences vector increment*/
v2 = 0; /* i-th element is a duplicate */
}
}
}

for (i = 0; i < N; i++){
if (v2 > 1){ /* if there are replicated values for that number*/
printf("\nReplicated element %d - first position %d (# of occurrences: %d)", v, i + 1, v2);

}
}
printf("\n");


return 0;
}

6 Risposte

  • Re: Frequenza ripetizioni elementi vettore

    Self explanation
    int v2[N]; /*occurences vector */
    Leggi i commenti
  • Re: Frequenza ripetizioni elementi vettore

    Si ok...ma non riesco a capire perché nel primo for pone v2=1? Perché in seguito lo incrementa per poi porlo = a 0?
  • Re: Frequenza ripetizioni elementi vettore

    All'inizio suppone che ogni elemento sia presente una sola volta (ecco perché impone =1)

    In seguito, incrementa v2[j] e pone a 0 v2 perché gli elementi a cui fanno riferimento sono stati trovati più volte (quindi aumenta l'occorrenza del primo e azzera l'occorrenza di quello trovato uguale).
  • Re: Frequenza ripetizioni elementi vettore

    Grazie ora è più chiaro...anche se ancora non ho capito perché mette v2=0 quando incrementa v2[j]
  • Re: Frequenza ripetizioni elementi vettore

    Scusa ... ma allora non hai compreso quello che ti ho scritto ...

    Un esempio ... se hai gli elementi

    5
    8
    6
    5
    4

    avrai all'inizio le seguenti occorrenze

    5 .. 1
    8 .. 1
    6 .. 1
    5 .. 1
    4 .. 1

    Ma dopo, visto che 5 ricorre più volte avrai

    5 ....... 2 (aumenta occorrenza)
    8 .. 1
    6 .. 1
    5 ....... 0 (azzera occorrenza)
    4 .. 1
  • Re: Frequenza ripetizioni elementi vettore

    Ok scusa sono messo un po' male ...ora è chiarissimo ...grazie mille delle risposte
Devi accedere o registrarti per scrivere nel forum
6 risposte