Ultimo problema: una volta scritti i dati sul file, devo tenere solo i vettori con due 1 e tutto il resto a 0 (esempio: 11000, 01001 etc etc). Finora il programma è questo:
codice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generaCodice(int [], FILE * ); //prototipo
main ()
{
int codice[5];
FILE *cfPtr; //puntatore al file da creare
if ((cfPtr =fopen("vettori.dat", "w+")) ==NULL) //crea e apre il file in lettura e scrittura
printf("Il file non può essere aperto");
else{
generaCodice(codice, cfPtr);
}
fclose(cfPtr);
return 0;
}
void generaCodice(int codice[], FILE *cfPtr) //genera codici e ricerca il numero di 1 e 0 presenti in ciascun vettore
{
srand((unsigned)time(NULL));
int i,j,n,m;
int contatoreUNO;
int contatoreZERO;
for (i=0;i<32;i++)
{
contatoreUNO=0;
contatoreZERO=0;
for (j=0;j<5;j++)
{
n=rand()%2;
codice[j]=n;
fprintf(cfPtr,"%d",codice[j]);
m=codice[j];
if(m==1)
{
contatoreUNO += 1;
}
else
{
contatoreZERO +=1;
}
}
fprintf(cfPtr,"\n"); //scrive sul file i codici
printf("\n%d° vettore : %d %d",i+1, contatoreUNO, contatoreZERO); //stampa a schermo il numero di 1 e 0
}
}
Ora non so come dirgli:
se il contatoreUNO è uguale a 2
allora mantieni il dato
altrimenti cancellalo