Salve ragazzi, prima di tutto vi scrivo l'esercizio:
Scrivere un programma C che definisca due vettori v1 e v2 di N elementi
di tipo intero e memorizzi nei vettori valori “accettabili” acquisiti da
tastiera secondo quanto segue:
a. In v1 siano memorizzati solo i valori positivi ed i valori negativi
multipli di 3
b. In v2 siano memorizzati solo i valori negativi non multipli di 3 e
dispari
c. Tutti gli altri valori acquisiti siano ignorati
d. L’inserimento si conclude quando uno dei due vettori è pieno; a
questo punto si stampi a video il contenuto dei vettori acquisiti.
Ora vi spiego: non riesco proprio a rendere l'if per il vettore 2 in modo da soddisfare la richiesta. Ho provato moltissimo ma non ci sono riuscito. Ecco il codice, manca l'ultima parte di stampare ma quella la so fare.
#include <stdio.h>
#include <stdlib.h>
#define N 5
int main()
{
int v1[N], v2[N], i;
printf("Inserire i valori del primo vettore v1. \nSolo numeri positivi, se negativi, devono essere multipli di 3.\n\n");
for(i=0; i<N; i++)
{
printf("Inserire valore: ");
scanf("%d", &v1[i]);
if(v1[i]<0 && (v1[i]%3)!=0)
{
printf("Il valore non soddisfa la richiesta.\n");
i--;
}
}
printf("\n");
printf("Inserire i valori del secondo vettore v2. \nSolo numeri negativi non multipli di 3 e dispari.\n\n");
for(i=0; i<N; i++)
{
printf("Inserire valore: ");
scanf("%d", &v2[i]);
if(v2[i]>0 && (v2[i]%3==0 || v2[i%2==0]))
{
printf("Il valore non soddisfa la richiesta.\n");
i--;
}
}
return 0;
}