it:informatica:linguaggio_c:vettori_2
Return to Home page
If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it
You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/it/informatica/linguaggio_c/vettori_2?rev=1551188125&do=diff
Differences
This shows you the differences between two versions of the page.
— | it:informatica:linguaggio_c:vettori_2 [2024/04/08 22:35] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Vettori (Esempio 2) ====== | ||
+ | **Concetti: | ||
+ | Algoritmi basati sull' | ||
+ | **Testo: | ||
+ | Realizzare un programma che: | ||
+ | * dato un vettore di interi di dimensione '' | ||
+ | * individui i valori uguali ed adiacenti ripetuti piu' di una volta nel vettore, indicandone la posizione del primo elemento della ripetizione e di quanti elementi e' composta la ripetizione. | ||
+ | |||
+ | A titolo esemplificativo, | ||
+ | <code C> | ||
+ | int v[DIM_VETT] = {2, 2, 3, 3, 3, 4, 2, 2, 4, 3, 3, 3, 3, 5, 5, 6, 1, 2, 3, 3}; | ||
+ | </ | ||
+ | il programma dovrà fornire il seguente output: | ||
+ | < | ||
+ | Valore 2 ripetuto 2 volte a partire da 0 | ||
+ | Valore 3 ripetuto 3 volte a partire da 2 | ||
+ | Valore 2 ripetuto 2 volte a partire da 6 | ||
+ | Valore 3 ripetuto 4 volte a partire da 9 | ||
+ | Valore 5 ripetuto 2 volte a partire da 13 | ||
+ | Valore 3 ripetuto 2 volte a partire da 18 | ||
+ | </ | ||
+ | |||
+ | **Soluzione: | ||
+ | <file C vettori_2.c> | ||
+ | / | ||
+ | Dato un vettore, ad esempio: | ||
+ | | ||
+ | i cui elementi sono i rispettivamente in posizione | ||
+ | POS : | ||
+ | |||
+ | | ||
+ | del primo elemento della ripetizione e di quanti elementi e' composta la ripetizione. | ||
+ | |||
+ | Nel caso del vettore qui riportato, l' | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | #include < | ||
+ | |||
+ | |||
+ | #define DIM_VETT 20 | ||
+ | |||
+ | int main(){ | ||
+ | |||
+ | int v[DIM_VETT] = {2, 2, 3, 3, 3, 4, 2, 2, 4, 3, 3, 3, 3, 5, 5, 6, 1, 2, 3, 3}; | ||
+ | int i, j, n_rip, pos; | ||
+ | |||
+ | /* Stampa vettore */ | ||
+ | printf(" | ||
+ | for(i=0; i< | ||
+ | printf(" | ||
+ | printf(" | ||
+ | |||
+ | /* Stampa posizione elementi in vettore */ | ||
+ | printf(" | ||
+ | for(i=0; i< | ||
+ | printf(" | ||
+ | printf(" | ||
+ | |||
+ | /* Prima soluzione */ | ||
+ | printf(" | ||
+ | i = 0; | ||
+ | pos = 0; | ||
+ | n_rip = 1; | ||
+ | |||
+ | for(i=0; i< | ||
+ | |||
+ | if(v[i]==v[i+1]){ | ||
+ | n_rip++; | ||
+ | }else{ | ||
+ | if(n_rip> | ||
+ | printf(" | ||
+ | } | ||
+ | n_rip = 1; | ||
+ | pos = i+1; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if(n_rip> | ||
+ | printf(" | ||
+ | } | ||
+ | |||
+ | /* Seconda soluzione */ | ||
+ | printf(" | ||
+ | i=0; | ||
+ | while(i< | ||
+ | pos = i; | ||
+ | n_rip = 1; | ||
+ | |||
+ | j = i+1; | ||
+ | while(v[i]==v[j] && j < DIM_VETT){ | ||
+ | n_rip++; | ||
+ | j++; | ||
+ | } | ||
+ | |||
+ | if(n_rip> | ||
+ | printf(" | ||
+ | i = j; | ||
+ | }else{ | ||
+ | i++; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ |
If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it
You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/it/informatica/linguaggio_c/vettori_2?rev=1551188125&do=diff