si si è proprio quello che volevo fare, grazie mille, ora con quel risultato voglio calcolarmi le occorrenze , es:
3 =1;
8 = 2;
13= 1;
10 =3;
17 = 1;
e poi stampare il numero con più occorrenze, quindi k=3
io mi sono scritta un programma e mi sono calcolata le occorrenze, solo che con il codice di sopra non ho capito se devo utilizzare il vec[i] o se i dati ottenuti delle somme parziali le devo inserire in un altro array.
Ora vi posto il codice:
codice:#include <stdio.h> #include <stdlib.h> int main(void) { const int MAXN = 20 ; /* dimensione massima del vettore */ int vet[MAXN] ; /* serie di numeri interi */ int compatto[MAXN] ; /* serie compatta di numeri interi: contiene, senza ripetizione, i valori del vettore "vet" */ int N ; /* dimensione del vettore "vet" */ int N_compatto ; /* dimensione del vettore "compatto" */ int i, j, t ; /* indici dei cicli */ int trovato ; /* flag per la ricerca */ int occorrenze; /* numero di occorrenze */ /* LEGGI LE DIMENSIONI DEL VETTORE */ do { printf("Quanti numeri saranno inseriti? ") ; scanf("%d",&N) ; /* LA DIMENSIONE MASSIMA DEL VETTORE E’ COMPRESA TRA 1 E MAXN */ if ( N > MAXN || N <=0 ) printf("Errore: il numero deve essere compreso tra %d e 0\n", MAXN) ; } while ( N > MAXN || N <=0 ) ; /* LEGGI UNA SERIE DI N NUMERI INTERI, MEMORIZZANDOLI IN UN VETTORE */ printf("Inserisci il vettore di %d elementi\n", N) ; for ( i=0; i< N; i++ ) { printf("Elemento %d: ", i+1) ; scanf("%d", &vet[i]) ; } printf("\n") ; /* STAMPA IL VETTORE DI INTERI */ printf("Stampa del vettore inserito\n") ; for ( i=0; i<N; i++ ) printf("Elemento %d: %d\n", i+1, vet[i]) ; printf("\n") ; /* AGGIORNA IL VETTORE "compatto" E CALCOLA IL NUMERO DI OCCORRENZE */ /* INIZIALMENTE IL VETTORE "compatto" NON CONTIENE NESSUN NUMERO */ N_compatto = 0 ; /* IL CICLO FOR SCANDISCE IL VETTORE "vet1" */ for ( i=0; i< N; i++ ) { /* INIZIALIZZA IL FLAG "trovato". IL FLAG ASSUME I VALORI -- "trovato" E’ UGUALE A 0 SE IL VETTORE "compatto" NON CONTIENE IL VALORE IN "vet[i]" -- "trovato" E’ UGUALE A 1 SE IL VETTORE "compatto" CONTIENE IL VALORE IN "vet[i]" */ trovato=0 ; /* PER OGNI ELEMENTO vet1[i] DI vet1, IL CICLO FOR SCANDISCE IL VETTORE "compatto" E VERIFICA SE "compatto" CONTIENE IL VALORE IN "vet1[i]" 70 LA RICERCA TERMINA QUANDO SI TROVA UNA CELLA "compatto[j]" UGUALE A "vet1[i]" O QUANDO SONO STATE CONSIDERATE TUTTE LE CELLE DEL VETTORE "compatto" */ for ( j=0; j< N_compatto && trovato==0; j++ ) { /* SE "compatto" CONTIENE "vet1[i]", AGGIORNA IL FLAG "trovato" */ if ( compatto[j] == vet[i] ) trovato = 1 ; } if ( trovato == 0 ) { /* SE "trovato" E’ UGUALE A 0, COPIA NEL VETTORE "compatto" IL VALORE IN "vet[i]" */ compatto[N_compatto] = vet[i] ; N_compatto = N_compatto + 1 ; /* CALCOLA IL NUMERO DI OCCORRENZE DI "vet[i]" NEL VETTORE "vet". IL CICLO FOR SCANDISCE IL VETTORE "vet" E CONTA QUANTE VOLTE 90 IL VALORE IN "vet[i]" E’ PRESENTE NEL VETTORE "vet" */ occorrenze = 0 ; for ( t=0; t< N; t++ ) { if ( vet[t] == vet[i] ) occorrenze = occorrenze + 1 ; } /* STAMPA DELLE OCCORRENZE */ printf("Elemento %d: %d, occorrenze %d\n", i+1, vet[i], occorrenze) ; } } exit(0) ; }

Rispondi quotando