danilo_pisani
28-12-2015, 14:32
Ciao, è la prima volta che scrivo su questo forum.
Stavo facendo questo programma:
" Si scriva un programma C che analizzi il contenuto di un vettore alla ricerca di valori replicati. Il programma dovrà in particolare: a. Acquisire i valori del vettore da tastiera b. Scandire il vettore stabilendo se al suo interno esistono valori ripetuti 2 o più volte. c. Stampi l’elenco dei numeri ripetuti e il numero di occorrenze relative, verificando che ciascun numero compaia una volta sola in tale elenco. "
Dopo averlo concluso, mi sono reso conto che il punto c non veniva del tutto soddisfatto, dato che una volta individuati i numeri ripetuti, se un numero veniva inserito più di due volte veniva stampato più volte. Perciò stavo cercando di modificarlo, senza stravolgerlo troppo, confrontando i numeri all'interno del vett2 e non considerando i doppioni. Il programma è questo:
"#include <stdio.h>
#include <stdlib.h>
#define N 6
int main()
{
int vett[N], vett2[N], i, z, g;
i=0;
printf("Inserisca sei numeri interi:\n");
while (i<N)
{
scanf("%d", &vett[i]);
i++;
}
z=0;
i=1;
g=0;
while (z<N)
{
while (i<N)
{
if(vett[z]==vett[i])
{
vett2[g]=vett[z];
g++;
}
i++;
}
z++;
i=z+1;
}
if (g!=0)
{
i=0;
z=0;
printf("I numeri ripetuti due o piu' volte sono:\n");
while (i<g)
{
while(z<g)
{
if(vett2[i]==vett2[z])
}
i++;
}
}
else
printf("Non ci sono numeri ripetuti due o piu' volte.\n");
return 0;
}"
Come potete notare l'ultimo if è incompleto, qualcuno mi sa dire come posso completarlo?
Grazie anticipatamente.
Stavo facendo questo programma:
" Si scriva un programma C che analizzi il contenuto di un vettore alla ricerca di valori replicati. Il programma dovrà in particolare: a. Acquisire i valori del vettore da tastiera b. Scandire il vettore stabilendo se al suo interno esistono valori ripetuti 2 o più volte. c. Stampi l’elenco dei numeri ripetuti e il numero di occorrenze relative, verificando che ciascun numero compaia una volta sola in tale elenco. "
Dopo averlo concluso, mi sono reso conto che il punto c non veniva del tutto soddisfatto, dato che una volta individuati i numeri ripetuti, se un numero veniva inserito più di due volte veniva stampato più volte. Perciò stavo cercando di modificarlo, senza stravolgerlo troppo, confrontando i numeri all'interno del vett2 e non considerando i doppioni. Il programma è questo:
"#include <stdio.h>
#include <stdlib.h>
#define N 6
int main()
{
int vett[N], vett2[N], i, z, g;
i=0;
printf("Inserisca sei numeri interi:\n");
while (i<N)
{
scanf("%d", &vett[i]);
i++;
}
z=0;
i=1;
g=0;
while (z<N)
{
while (i<N)
{
if(vett[z]==vett[i])
{
vett2[g]=vett[z];
g++;
}
i++;
}
z++;
i=z+1;
}
if (g!=0)
{
i=0;
z=0;
printf("I numeri ripetuti due o piu' volte sono:\n");
while (i<g)
{
while(z<g)
{
if(vett2[i]==vett2[z])
}
i++;
}
}
else
printf("Non ci sono numeri ripetuti due o piu' volte.\n");
return 0;
}"
Come potete notare l'ultimo if è incompleto, qualcuno mi sa dire come posso completarlo?
Grazie anticipatamente.