Ciao a tutti, eccomi alla presa con 1 altro problema:
Devo permutare gli elementi di un vettore, ovvero scambiarli di posto. Se sono negativi metterli alla destra della metà del vettore, se sono positivi devo metterli alla sinistra. Questa è la mia soluzione:
codice:
#include <stdio.h>
#define N 10
void positiviNegativi(int v[],int dim){
int i;
int *p1,*p2,app=0;
p1=&(v[0]);
p2=&(v[dim-1]);
for (i=0; i<=dim/2; i++){
if (p1<0){
app=*(p1);
*(p1)=*(p2);
*(p2)=app;
p1++;
p2--;
}
}
}
int main(){
int i;
int v[N]={3,-4,6,-8,4,-2,8,-2,7,-12};
printf("Vettore non permutato: \n");
for (i=0; i<=N-1; i++){
printf("%4d", v[i]);}
printf("\n");
positiviNegativi(v,N);
printf("Vettore permutato: \n");
for (i=0; i<=N-1; i++)
printf("%4d", v[i]);
printf("\n");
return 0;
}
ma come mai non funge ??????