In questo tutorial realizziamo un algoritmo che crea due array con i numeri pari e dispari rispettivamente.
Scrivere un programma che, dato un vettore di interi, ne produca due contenenti, rispettivamente, i numeri pari e dispari del vettore iniziale.
Algoritmo che crea due vettori: uno con i numeri pari e uno con i dispari
Creiamo la funzione insert_array che si occupa di inserire gli elementi nell’array. Poi creiamo la funzione stampa_array che si occupa di stampare gli elementi dell’array. Infine creiamo la funzione array_divisi che si occupa di creare e successivamente stampare due array, uno che contiene i numeri pari e l’altro che contiene i dispari.
Nel main richiamiamo dunque le funzioni invocate.
Ecco quindi il listato completo:
#include <stdio.h>
#define MAX 100
int insert_array(int a[]) {
int i, n;
printf("elementi?:");
scanf("%d", &n);
for(i=0;i<n;i++) {
printf("elemento %d:", i);
scanf("%d", &a[i]);
}
return(n);
}
void stampa_array(int a[], int n) {
int i;
for(i=0;i<n;i++)
printf("\t%d", a[i]);
}
void array_divisi(int a[], int p[], int d[], int n) {
int i, j=0, k=0, s, t;
for(i=0;i<n;i++) {
if (a[i]%2==0) {
p[j]=a[i];
j++;
}
else
{
d[k]=a[i];
k++;
}
}
printf("\narray pari");
stampa_array(p,j);
printf("\narray dispari");
stampa_array(d,k);
}
int main() {
int a[MAX], p[MAX], d[MAX];
int n;
n=insert_array(a);
stampa_array(a,n);
array_divisi(a,p,d,n);
}
In questo semplice algoritmo abbiamo semplicemente creato due array con i numeri pari e dispari, rispettivamente.
Alcuni link utili
Allocazione dinamica della memoria con malloc
Esercitazione sulle struct in C
Realizzare un menù di scelta in C
Come sommare gli elementi della cornice esterna
Ricerca elementi in una matrice