Salve a tutti! Purtroppo ho di nuovo un problema stavolta con il case 2:, purtroppo mi salta le istruzioni da eseguire nei due for del case in un modo analogo al problema che avevo nel case 1. Come posso fare per risolvere questo problema?
Ecco il codice:
#include <string.h>
#include <stdio.h>
int main()
{
struct{
char titolo[60],data[60],ora[60],canale[60],trasm[60];
int durata;
}film[100];
int i,n=0,scelta;
printf("\n***Programma di gestione per cinecircolo***\n");
do{
printf("\n1:Inserimento film\n2:Aggiornamento film\n3:Film gia' trasmessi\n4:Film trasmessi in una certa data\n5:Film che verrano trasmessi su un certo canale\n6:I 4 film piu' lunghi\n7:FINE");
printf("\n\nFornisci scelta:\n");
scanf("%d",&scelta);
while(getchar()!='\n');
switch(scelta)
{
case 1:
{
if(n<100)
{
printf("\nFornisci dati(titolo,durata,data,ora,trasm,canale)\n");
fgets(film[n].titolo,60,stdin);
scanf("%d",&film[n].durata);
while(getchar()!='\n');
fgets(film[n].data,60,stdin);
fgets(film[n].ora,60,stdin);
fgets(film[n].trasm,60,stdin);
fgets(film[n].canale,60,stdin);
n++;
}
else
printf("\nSpazio esaurito\n");
}break;
case 2:
{
char titolo1[60];
char scelta1[20];
char data1[20];
printf("\nVuoi ricercare per data o per titolo il film da aggiornare?\n");
scanf("%s",scelta1);
if(strcmp(scelta1,"data")==0)
{
printf("\nFornisci la data del film:\n");
scanf("%s",data1);
for(i=0;i<1;i++)
{
if(strcmp(data1,film[n].data)==0)
{
printf("Fornire la nuova situazione di trasmissione(si o no):");
scanf("%s",film[n].trasm);
}
else
printf("\nLa data non trova riscontri nei nostri database, ripetere la scelta e provare un'altra data\n");
}
}
else if(strcmp(scelta1,"titolo")==0)
{
printf("\nFornisci il titolo del film:\n");
scanf("%s",titolo1);
for(i=0;i<1;i++)
if(strcmp(titolo1,film[n].titolo)==0)
{
printf("Fornire la nuova situazione di trasmissione(si o no):");
scanf("%s",film[n].trasm);
}
else
printf("\nIl titolo non trova riscontri nei nostri database, ripetere la scelta e provare un altro titolo\n");
}
}break;
}
}while(scelta!=7);
return(0);
}
Scusa oregon, hai ragione che erano più di 20 è che...lasciamo perdere(ho sbagliato grandemente e basta)!