Buongiorno a tutti, devo creare un programma che risolva la seguente traccia:
In un array vengono memorizzati i numeri di gara dei piloti che hanno portato a termine la priva prova, in un secondo array i numeri dei piloti che hanno portato a termine la seconda prova della stessa gara. Il programma riceve in input i valori da inserire nei due array e inserisce in tre nuovi array i numeri dei piloti che:
- Hanno portato a termine entrambe le prove
- Hanno portato a termine solo la prima prova
- Hanno portato a termine la prima prova
Fin'ora sono riuscito a fare solo la prima parte (ovvero i numeri di chi ha fatto entrambe le prove)
Sto cercando di fare la funzione che calcola chi ha fatto solo la prima prova ma quando faccio la stampa del vettore noto che non è stato caricato correttamente e non riesco a capire dove sbaglio, incollo qui il codice e spero in un vostro aiuto
#include "stdio.h"
#include "stdlib.h"
#define N 5
void numeri_prima_prova(int[]);
void numeri_seconda_prova (int []);
int entrambe_prove (int [], int [], int []);
void prima_gara (int [], int [], int []);
void stampa_vettore (int, int []);
int main()
{
int cellevet3, cellevet4;
int vettore1[N], vettore2[N], vettore3[N], vettore4[N], vettore5[N];
numeri_prima_prova(vettore1);
printf("\n\n");
numeri_seconda_prova(vettore2);
cellevet3=entrambe_prove (vettore1, vettore2, vettore3);
printf("\n\nPiloti che hanno completato entrambe le gare: ");
stampa_vettore (cellevet3, vettore3);
prima_gara (vettore1, vettore2, vettore4);
printf("\n\nPiloti che hanno completato la prima gara ma non la seconda: ");
// stampa_vettore (cellevet4, vettore4);
printf("\n");
system("PAUSE");
}
void numeri_prima_prova(int vet1[])
{
int cont, i;
printf("Inserisci i numeri dei piloti che hanno portato a termine la prima gara\n");
printf("\n");
for (i=0, cont=1;i<N; i++,cont++)
{
printf("Inserisci %d^ numero: ", cont);
scanf("%d",&vet1[i]);
}
}
void numeri_seconda_prova (int vet2 [])
{
int i, cont;
printf("Inserisci i numeri dei piloti che hanno portato a termine la seconda gara\n");
printf("\n");
for (i=0, cont=1;i<N; i++, cont++)
{
printf("Inserisci %d^ numero: ",cont);
scanf("%d",&vet2[i]);
}
}
int entrambe_prove (int vet1[], int vet2[], int vet3[])
{
int i, j, n;
n=0;
for (i=0; i<N; i++)
{
for (j=0; j<N; j++)
{
if (vet1[i]==vet2[j])
{
vet3[n]=vet1[i];
n++;
}
}
}
return n;
}
void stampa_vettore (int x, int vet[])
{
int i;
for (i=0; i<x; i++)
{
printf("%d ",vet[i]);
}
printf("\n\n");
}
void prima_gara (int vet1[], int vet2[], int vet4[])
{
int i, n, j, cont, x;
n=0;
for (i=0, cont=0; i<N; i++)
{
for (j=0; j<N; j++)
{
if (vet1[i]!=vet2[j])
{
cont++;
if (cont==N)
{ vet4[n]=vet1[i];
n++;}
}
}
}
}