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 ??????