Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1 /* PROGRAMMAZIONE IN C */
- 2
- 3 /* File: intersezione_vettori.c */
- 4 /* Soluzione proposta esercizio "Intersezione di due vettori" */
- 5
- 6
- 7 #include <stdio.h>
- 8 #include <stdlib.h>
- 9
- 10 int main(void)
- 11 {
- 12 const int MAXN = 30 ; /* dimensione massima dei vettori */
- 13
- 14 int vet1[MAXN], vet2[MAXN] ; /* vettori di interi */
- 15 int N1, N2 ; /* dimensione dei vettori */
- 16
- 17 int intersezione[MAXN] ; /* intersezione tra i due vettori di interi */
- c 2006 Politecnico di Torino 13
- Programmazione in C Vettori
- 18 int N_intersezione ; /* dimensione del vettore intersezione */
- 19
- 20 int i, j ; /* indici dei cicli */
- 21 int trovato ; /* flag per la ricerca */
- 22
- 23 /* LEGGI LE DIMENSIONI DEL PRIMO VETTORE */
- 24 do
- 25 {
- 26 printf("Quanti numeri saranno inseriti nel primo vettore? ") ;
- 27 scanf("%d", &N1) ;
- 28
- 29 /* LA DIMENSIONE MASSIMA DEL VETTORE E’ COMPRESA TRA 1 E MAXN */
- 30 if ( N1 > MAXN || N1 <=0 )
- 31 printf("Errore: il numero deve essere compreso tra 0 e %d\n",MAXN) ;
- 32 }
- 33 while ( N1 > MAXN || N1 <= 0 ) ;
- 34
- 35 /* LEGGI IL PRIMO VETTORE */
- 36 printf("Inserisci il primo vettore di %d elementi\n", N1) ;
- 37 for ( i=0; i< N1; i++ )
- 38 {
- 39 printf("Elemento %d: ", i+1) ;
- 40 scanf("%d", &vet1[i]) ;
- 41 }
- 42 printf("\n") ;
- 43
- 44 /* STAMPA DEL PRIMO VETTORE */
- 45 printf("Stampa del primo vettore\n");
- 46 for ( i=0; i< N1; i++ )
- 47 printf("Elemento %d: %d\n", i+1, vet1[i]) ;
- 48 printf("\n") ;
- 49
- 50 /* LEGGI LE DIMENSIONI DEL SECONDO VETTORE */
- 51 do
- 52 {
- 53 printf("Quanti numeri saranno inseriti nel secondo vettore? ") ;
- 54 scanf("%d", &N2) ;
- 55
- 56 /* LA DIMENSIONE MASSIMA DEL VETTORE E’ COMPRESA TRA 1 E MAXN */
- 57 if ( N2 > MAXN || N2 <=0 )
- 58 printf("Errore: il numero deve essere compreso tra 0 e %d\n", MAXN) ;
- 59 }
- 60 while ( N2 > MAXN || N2 <= 0 ) ;
- 61
- 62 /* LEGGI IL SECONDO VETTORE */
- 63 printf("Inserisci il secondo vettore di %d elementi\n", N2) ;
- 64 for ( i=0; i< N2; i++ )
- 65 {
- 66 printf("Elemento %d: ", i+1) ;
- 67 scanf("%d", &vet2[i]) ;
- 68 }
- 69 printf("\n") ;
- 70
- 71 /* STAMPA DEL SECONDO VETTORE */
- 72 printf("Stampa il secondo vettore\n");
- 73 for ( i=0; i< N2; i++ )
- c 2006 Politecnico di Torino 14
- Programmazione in C Vettori
- 74 printf("Elemento %d: %d\n",i+1, vet2[i]) ;
- 75 printf("\n") ;
- 76
- 77 /* AGGIORNA IL VETTORE "intersezione" */
- 78
- 79 /* INIZIALMENTE IL VETTORE "intersezione" NON CONTIENE NESSUN NUMERO */
- 80 N_intersezione = 0 ;
- 81
- 82 /* IL CICLO FOR SCANDISCE IL VETTORE "vet1" */
- 83 for ( i=0; i<N1; i++ )
- 84 {
- 85 /* INIZIALIZZA IL FLAG "trovato". IL FLAG ASSUME I VALORI
- 86 -- "trovato" E’ UGUALE A 0 SE IL VETTORE "vet2" NON CONTIENE
- 87 IL VALORE IN "vet1[i]"
- 88 -- "trovato" E’ UGUALE A 1 SE IL VETTORE "vet2" CONTIENE IL
- 89 VALORE IN "vet1[i]" */
- 90 trovato = 0;
- 91
- 92 /* PER OGNI ELEMENTO "vet1[i]" DI "vet1", IL CICLO FOR SCANDISCE IL
- 93 VETTORE "vet2" E VERIFICA SE "vet2" CONTIENE IL VALORE IN "vet1[i]"
- 94
- 95 LA RICERCA TERMINA QUANDO SI TROVA UNA CELLA "vet2[j]" UGUALE A "vet1[i]"
- 96 O QUANDO SONO STATE CONSIDERATE TUTTE LE CELLE DEL VETTORE "vet2" */
- 97
- 98 for ( j=0; j<N2 && trovato==0; j++ )
- 99 {
- 100 if ( vet2[j] == vet1[i] )
- 101 {
- 102 /* SE "vet2" CONTIENE IL VALORE IN "vet1[i]", QUESTO
- 103 VALORE E’ INSERITO NEL VETTORE "intersezione" */
- 104 intersezione[N_intersezione] = vet1[i] ;
- 105
- 106 /* INCREMENTA LA DIMENSIONE DEL VETTORE "intersezione" */
- 107 N_intersezione = N_intersezione + 1 ;
- 108
- 109 /* AGGIORNA IL FLAG "trovato" */
- 110 trovato = 1 ;
- 111 }
- 112 }
- 113 }
- 114
- 115 /* STAMPA DEL VETTORE "intersezione" */
- 116 printf("Stampa del vettore intersezione\n");
- 117 if (N_intersezione == 0)
- 118 printf("Il vettore intersezione non contiene nessun elemento \n") ;
- else
- {
- printf("Il vettore intersezione contiene %d elementi \n",
- N_intersezione) ;
- for ( i=0; i< N_intersezione; i++ )
- printf("Elemento %d: %d\n", i+1, intersezione[i]) ;
- printf("\n") ;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement