cs:c_language:array_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/cs/c_language/array_2
Array (Example 2)
Concepts:
Arrays, initialization and utilization
Text:
Implement a C program that:
- given an array of dimension
DIM_VETT
equal to 20 and filled with integer numbers. - find the equal adjacent values in the array that are repeated more than one time, indicating the first element of the repetition and the number of adjacent repeated elements.
As an example, given the array:
int v[DIM_VETT] = {2, 2, 3, 3, 3, 4, 2, 2, 4, 3, 3, 3, 3, 5, 5, 6, 1, 2, 3, 3};
the program must provide the following output:
Value 2 repeated 2 times, starting form the position 0 Value 3 repeated 3 times, starting form the position 2 Value 2 repeated 2 times, starting form the position 6 Value 3 repeated 4 times, starting form the position 9 Value 5 repeated 2 times, starting form the position 13 Value 3 repeated 2 times, starting form the position 18
Solution:
- array_2.c
/******************************************* Given the vector, for instance: v: 2 2 3 3 3 4 2 2 4 3 3 3 3 5 5 6 1 2 3 3 whose elements are in the positions POS : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 find the equal adjacent values that are repeated more than one time in the vector, indicating the first element of the repetition and the number of adjacent repeated elements. In the case of the array of the example, the output of the program should be: Value 2 repeated 2 times, starting form the position 0 Value 3 repeated 3 times, starting form the position 2 Value 2 repeated 2 times, starting form the position 6 Value 3 repeated 4 times, starting form the position 9 Value 5 repeated 2 times, starting form the position 13 Value 3 repeated 2 times, starting form the position 18 *******************************************/ #include <stdio.h> #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_rep, pos; /* Print the array */ printf("VETT: "); for(i=0; i<DIM_VETT; i++) printf("%3d ", v[i]); printf("\n"); /* Print the position of the vector elements */ printf("POS : "); for(i=0; i<DIM_VETT; i++) printf("%3d ", i); printf("\n"); /* First solution */ printf("\nSOLUTION 1\n"); i = 0; pos = 0; n_rep = 1; for(i=0; i<DIM_VETT-1; i++){ if(v[i]==v[i+1]){ n_rep++; }else{ if(n_rep>1){ printf("Value %d repeated %d times, starting form the position %d\n", v[i], n_rep, pos); } n_rep = 1; pos = i+1; } } if(n_rep>1){ printf("Value %d repeated %d times, starting form the position %d\n", v[i], n_rep, pos); } /* Second solution */ printf("\nSOLUTION 2\n"); i=0; while(i<DIM_VETT-1){ pos = i; n_rep = 1; j = i+1; while(v[i]==v[j] && j < DIM_VETT){ n_rep++; j++; } if(n_rep>1){ printf("Value %d repeated %d times, starting form the position %d\n", v[i], n_rep, pos); 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/cs/c_language/array_2
/web/htdocs/www.skenz.it/home/data/pages/cs/c_language/array_2.txt · Last modified: 2024/04/08 22:35 by 127.0.0.1