Ecco due versioni, la prima usando puntatori e indici, la seconda sfruttando pienaemnte l'aritmetica dei puntatori
PHP Code:
/*
* Un anelli per domarli
* Un anello per trovarli
* un anello per ghermirli
* e nell'oscurità .. incatenarli
*
* ps questo programma stampa i numeri pari e dispari in un array
*
*/
#include <st***.h>
void print_p( int vet[], int size);
void print_d( int vet[], int size);
int main(void){
int vet[7] ={1,2,3,4,5,6,7};
print_p(vet,7);
print_d(vet,7);
return 0;
}
void print_p( int vet[], int size){
int i;
for (i=0;i<size;i++){
if ((*(vet+i))%2==0){
printf("%d ",*(vet+i));
}
}
printf("\n");
}
void print_d( int vet[], int size){
int i;
for (i=0;i<size;i++){
if ((*(vet+i))%2!=0){
printf("%d ",*(vet+i));
}
}
printf("\n");
}
PHP Code:
/*
* Un sogno nel sogno
*
*ps questo algoritmo stampa i numeri pari e dispari sfruttando l'artimetica dei puntatori
*/
#include <st***.h>
void print_p( int vet[], int size);
void print_d( int vet[], int size);
int main(void){
int vet[7] ={1,2,3,4,5,6,7};
print_p(vet,7);
print_d(vet,7);
return 0;
}
void print_p( int vet[], int size){
int *init=vet;
for (;vet-init<size;vet++){
if ((*vet)%2==0){
printf("%d ",*vet);
}
}
printf("\n");
}
void print_d( int vet[], int size){
int *init=vet;
for (;vet-init<size;vet++){
if ((*vet)%2!=0){
printf("%d ",*vet);
}
}
printf("\n");
}