Sicuramente suscettibile di notevoli migliorire (soprattutto come "formattazione" generale del codice)..ma funzia
Codice: Seleziona tutto
#include <stdio.h>
#include <stdlib.h>
#define N 734
int main()
{
FILE *fp;
int *vect;
int opt, i=0, chs=0, chs_2=0;
if((vect=calloc(N, sizeof(int)))==NULL)
{
printf("Errore Allocazione Memoria!");
return EXIT_FAILURE;
}
if((fp=fopen("figu.txt","r"))==NULL)
{
printf("Il file non esiste! Che vuoi fare?\n");
printf("1:Crea Nuovo File\n");
printf("2:Esci\n");
scanf("%d", &opt);
if(opt==1)
{
if((fp=fopen("figu.txt","w"))==NULL)
{
printf("Errore Apertura File!");
return EXIT_FAILURE;
}
fclose(fp);
}
else if(opt==2)
{
printf("Uscita");
return EXIT_SUCCESS;
}
}
while((fscanf(fp, "%d", &vect[i]))==1 && !feof(fp))
i++;
//fclose(fp);
while(chs==0)
{
printf("1:Aggiungi Figurine\n");
printf("2:Rimuovi Figurine\n");
printf("3:Quante Sono Le Mancanti\n");
printf("4:Controlla Figurina\n");
printf("5:Genera Mancanti\n");
printf("6:Esci\n");
scanf("%d", &opt);
if(opt==1)
{
printf("Terminare con 0\n");
while(scanf("%d", &chs_2)==1)
{
if(chs_2==0 || chs_2 > N)
break;
else
{
if(vect[chs_2-1]==1)
printf("Già presente\n");
else
vect[chs_2-1]=1;
}
}
}
else if(opt==2)
{
printf("Terminare con 0\n");
while(scanf("%d", &chs_2)==1)
{
if(chs_2==0 || chs_2 > N)
break;
else
{
if(vect[chs_2-1]==0)
printf("Già Assente\n");
else
vect[chs_2-1]=0;
}
}
}
else if(opt==3)
{
chs_2=0;
for(i=0;i<N;i++)
if(vect[i]==0)
chs_2++;
printf("%d\n", chs_2);
}
else if(opt==4)
{
while((scanf("%d", &chs_2))==1)
{
if(chs_2==0 || chs_2 > N)
break;
else
{
if(vect[chs_2-1]==1)
printf("Presente\n");
else
printf("Assente\n");
}
}
}
else if(opt==5)
{
if((fp=fopen("mancanti.txt","w"))==NULL)
{
printf("Errore Apertura File!");
return EXIT_FAILURE;
}
for(i=0;i<N;i++)
if(vect[i]==0)
fprintf(fp, "%d ", i+1);
fclose(fp);
}
else if(opt==6)
{
if((fp=fopen("figu.txt","w"))==NULL)
{
printf("Errore Apertura File");
return EXIT_FAILURE;
}
for(i=0;i<N;i++)
fprintf(fp, "%d ", vect[i]);
chs=1;
fclose(fp);
}
}
free(vect);
return EXIT_SUCCESS;
}
EDIT: corrette alcune cosine, il programma funzionava ma ho aggiunto qualche comodità in più