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:
ma come mai non funge ??????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; }

Rispondi quotando