Salve,sono alle prime armi e come esercizio da fare mi è stato assegnato di scrivere un programma che dato dei numeri di imput mi dica quali siano quelli negativi e quali positivi
Ho abbozzato questo

codice:
#include <stdio.h>




void controlla (int n[],int npos[],int nneg[]){
    int i;
    for (i=0;i<4;i++){
        if(n[i]<0){
            nneg[i]=*n;
        }else if (n[i]>0){
            npos[i]=*n;
        }
        
    }
}






int main (){
    int numerineg[4];
    int numeripos[4];
    int i;
    int o;
    int numero[4];
    while (i<4){
        printf("Inserisci un numero \n");
        scanf("%d",&numero[i]);
        controlla(numero,numeripos,numerineg);
        i++;
    }
        
    for (o=0;o<4;o++){
        printf(" Numero neg :%d \n",numerineg[o]);
        printf("Numero pos :%d \n",numeripos[o]);
    }
}
Al posto del while ho messo un for normale ovviamente è stata una mia "prova",comunquesia il programma una volta inseriti i numeri mi da come output solo i primi due numeri inseriti e non considera gli altri?
Cosa sbaglio?
Grazie a tutti quelli che mi risponderanno!