Salve a tutti!
Ho realizzato un programma che però non funziona come dovrebbe.
Il programma deve definire due vettori v1 e v2 di N elementi di tipo intero e memorizzare nei vettori valori “accettabili” acquisiti da tastiera secondo queste regole:
a. In v1 devono essere memorizzati solo i valori positivi ed i valori negativi multipli di 3
b. In v2 devono essere memorizzati solo i valori negativi non multipli di 3 e dispari
Tutti gli altri valori acquisiti devono essere ignorati e quando uno dei due vettori è pieno deve finire il riempimento.
Il mio programma però non mi inserisce i valori nel vettore.
Mi spiegate dov è l'errore?
codice:#include <stdio.h> #include <stdlib.h> #define N 5 int main() { int v1[N], v2[N], ind1, ind2, dato, numdati1, numdati2; ind1 = 0; ind2 = 0; printf("Inserire elementi:\n"); while ((ind1<N) && (ind2<N)) { scanf("%d", &dato); if ((dato>=0) | (dato%3==0)) { v1[ind1] = dato; ind1 ++; } else if ((dato<0 && dato%3!=0) || (dato%2 != 0)) { v2[ind2] = dato; ind2 ++; } } numdati1 = ind1; numdati2 = ind2; printf("Il contenuto del primo vettore e':\n"); for (ind1=0; ind1<numdati1; ind1++) printf("%d\n", v1[N]); printf("Il contenuto del secondo vettore e':\n"); for (ind2=0; ind2<numdati2; ind2++) printf("%d\n", v2[N]); return 0; }

Rispondi quotando