Sei sulla pagina 1di 2

1: #include <stdio.

h>
2: #include <stdlib.h>
3: #define MAX_N 100
4:
5: int V [MAX_N];
6: int D [MAX_N];
7:
8: void gestioneSequenza (void);
9: int immissione (void);
10: void stampaArray (int);
11: void stampaElemento (int, int);
12: int elementiDispari (int);
13:
14: int main (void) {
15: gestioneSequenza(); //In questo caso il main non fa altro che richiamare la funzione ge
16: }
17:
18: void gestioneSequenza (void) {
19:
20: int scelta = -1; //La variabile scelta è inizializzata a -1 per entrare nel ciclo whil
21: int dimensioneArray;
22: int posizione;
23: int i, k;
24: int dimensioneArraydispari; //Questa variabile contiene la dimensione del vettore cont
25:
26: while (scelta != 0) {
27:
28: printf ("\n *** MENU' ***");
29: printf ("\n 1.Immissione e stampa rovescia.\n");
30: printf ("\n 2.Stampa vettore.\n");
31: printf ("\n 3.Stampa elemento alla posizione...\n");
32: printf ("\n 4.Valori dispari.\n");
33: printf ("\n 0.Esci.\n");
34: printf ("\n *** FINE MENU' ***");
35:
36: printf ("\nScegli un'opzione dal MENU': ");
37: scanf ("%d", &scelta);
38:
39: switch (scelta) {
40:
41: case 1: dimensioneArray = immissione ();
42: printf ("\nAdesso stampo il vettore in maniera inversa.\n");
43: for (i = dimensioneArray - 1; i >= 0; i--) {
44: printf ("\nV[%d]: %d\n", i, V [i]);
45: }
46: break;
47: case 2: stampa (dimensioneArray);
48: break;
49: case 3: printf ("\nInserisci la posizione che desideri stampare: ");
50: scanf ("%d", &posizione);
51: stampaElemento (dimensioneArray, posizione);
52: break;
53: case 4: dimensioneArraydispari = elementiDispari(dimensioneArray);
54: if (dimensioneArraydispari == 0) {
55: printf ("\nNon ci sono numeri dispari in 'V'!\n");
56: }
57: else {
58: printf ("\nCi sono %d numeri dispari.\n", dimensioneArraydispari);
59: printf ("\nFatto! Ora stampo...\n");
60: for ( k = 0; k < dimensioneArraydispari; k++) {
61: printf ("\nElemento dispari n. %d: %d \n", k+1, D [k] );
62: }
63: }
64: break;
65: }//case
66:
67: }//while
68: }
69:
70: int elementiDispari (int dimensioneArray) {
71: int i;
72: int j = 0;
73:
74: for (i = 0; i < dimensioneArray; i++) {
75: if (V [i] %2 != 0) {
76: D [j] = V [i];
77: j++;
78: }
79: }
80: return j;
81: }
82:
83: void stampa (int dimensioneArray) {
84: int i;
85:
86: for (i = 0; i < dimensioneArray; i++) {
87: printf ("\nV [%d]: %d\n", i, V [i]);
88: }
89:
90: }
91:
92: int immissione (void) {
93:
94: int i;
95: int n;
96:
97: do {
98: printf ("\nQuanti elementi desideri inserire? ");
99: scanf ("%d", &n);
100: }
101: while ( n < 1 || n > MAX_N);
102:
103: for ( i = 0; i < n; i++) {
104: printf ("\nInserisci elemento n.%d: ", i);
105: scanf ("%d", &V [i]);
106: }
107:
108: return n;
109: }
110:
111: void stampaElemento (int dimensioneArray, int posizione) {
112: int i;
113:
114: if (posizione >= 0 && posizione <= dimensioneArray) {
115: printf("\nLa posizione %d e' occupata dal numero: %d", posizione, V [posizione]);
116: }
117: else {
118: printf ("\nImmetti una posizione valida!\n");
119: }
120: }