Ciao a tutti.
Vi scrivo poichè, provando una traccia di programmazione C, ho riscontrato un problema in fase di esecuzione.
La traccia è la seguente:
Il proprietario di una catena di supermercati intende creare una tabella per una più efficiente gestione dei suoi
supermercati. Per ogni supermercato il sistema deve memorizzare: il nome e il cognome del responsabile del
supermercato; l’indirizzo del supermercato (ad Esempio Via: Roma, 4 e città: Taranto; il numero di dipendenti, il
fatturato dell’ultimo anno.
Il programma dovrà consentire di:
? caricare le informazioni della tabella;
? visualizzare i dati del supermercato il cui responsabile è inserito in input dal proprietario della
catena;
? visualizzare quanti supermercati sono presenti nella città inserita in input dal proprietario della
catena;
? visualizzare il supermercato che ha il maggior numero di dipendenti.
Precisamente sono bloccato al secondo punto del programma, quello del visualizzare i dati inserendo il cognome (ho scelto così ) del responsabile del supermercato.
In fase di compilazione non da alcun errore sintattico, ma durante l'esecuzione il programma crasha.
Posto qui sotto il mio codice completo, sperando qualcuno di voi possa aiutarmi
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 10
struct Sdata{
char nome[10];
char cognome[15];
char indirizzo[30];
char citta[15];
int dip;
float fatt;};
typedef struct Sdata sup;
int main()
{int n,i,c;
char cognp[15];
printf("Inserire il numero dei supermercati da registrare:");
scanf("%d",&n);
if (n>max){ //Controllo che il numero di supermercati da registrare non superi un massimo indicato.
printf("\n\aErrore,non superare un massimo di 10 supermercati da registrare!");
return 0;
}
sup supermercati[n];
for (i=0;i<n;i++){ //Registrazione dei dati di ogni supermercato
printf("\nSupermercato n.%d",i);
fflush (stdin);
printf("\nInserire nome del proprietario:");
scanf("%c",&supermercati[i].nome);
fflush (stdin);
printf("\nInserire cognome del proprietario:");
scanf("%s",&supermercati[i].cognome);
fflush (stdin);
printf("\nInserire l'indirizzo del supermercato:");
scanf("%s",&supermercati[i].indirizzo);
fflush (stdin);
printf("\nInserire la citta' del supermercato:");
scanf("%s",&supermercati[i].citta);
fflush (stdin);
printf("\nInserire il numero di dipendenti:");
scanf("%d",&supermercati[i].dip);
fflush (stdin);
printf("\nInserire il fatturato di quest'anno (in euro):");
scanf("%f",&supermercati[i].fatt);
fflush (stdin);
}
system("pause");
printf("\nVisualizzazione dati:\n");
printf("Inserire il cognome del responsabile del supermercato:");
scanf("%s",&cognp);
fflush (stdin);
i=0;
while (c!=0){
c==strcmp(cognp[15],supermercati[i].cognome[15]);
i++;
}
if (c==0){
printf("\nSupermercato %d",i);
printf("\nNome e cognome del responsabile: %s %s",supermercati[i].nome,supermercati[i].cognome);
printf("\nIndirizzo e citta':%s,%s",supermercati[i].indirizzo,supermercati[i].citta);
printf("\nNumero dipendenti: %d",supermercati[i].dip);
printf("\nFatturato annuo: %f",supermercati[i].fatt);};
return 0;
}