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;
}