Aiuto per esame linguaggio C

di il
7 risposte

Aiuto per esame linguaggio C

Salve, sono uno studente d'informatica e attualmente sto studiando il linguaggio C.
C'è un esercizio cui traccia mi chiede questo:

Definire tipi di record con i seguenti campi: paese, regione, abitanti.
Dichiarare il record di nome 'paesi' del tipo indicato sopra.
Creare il file 'media.dat' ad accesso casuale di 4 record del tipi sopra indicato.
Inizializzare i record del file con valori vuoti o zero, e poi definire un ciclo per inserire tutti i 4 record in input da tastiera.
Infine dal file leggere il numero di abitanti, calcolarne la media e visualizzare la media. (Lettura, calcolo media e visualizzazione) tramite una funzione.


#include <stdio.h>
#define SIZE 40
struct clientData{char paese[SIZE];char regione[SIZE];int abitanti;};//DEFINIZIONE TIPO DI RECORD
void media(FILE *fPtr);
int main()
{
int i,j;
double rit;
struct clientData paesi={"","",0};
FILE*cfPtr;
if((cfPtr=fopen("media.dat","wb"))==NULL){
printf("Il file non può essere aperto\n");}
else{

for(i=0;i<4;i++){printf("\nInserisci Paese, Regione e Abitanti:\n");
fscanf(stdin,"%s%s%d",paesi.paese,paesi.regione,&paesi.abitanti);
fseek(cfPtr,i*sizeof(struct clientData),SEEK_SET);
fwrite(&paesi,sizeof(struct clientData),1,cfPtr);
}
fclose(cfPtr);
}
return 0;}



void media(FILE *fPtr){
struct clientData paesi={"","",0};
int tot,temp;
int b;
double med;
tot=0;
for(b=0;b<4;b++){
temp=fread(&paesi.abitanti,sizeof(int),10,fPtr);
fseek(fPtr,sizeof(struct clientData),SEEK_SET);
tot=temp+tot;
}
med=tot/4;
printf("La media degli abitanti è:\t",med);
}



Premetto che sono alle prime armi, la dispensa fornita dal professore è troppo ambigua.

7 Risposte

  • Re: Aiuto per esame linguaggio C

    No qui non si fanno gli esercizi scolastici.

    Prova a proporre una tua soluzione e avrai consigli ed eventuali indicazioni sugli errori.
  • Re: Aiuto per esame linguaggio C

    Uno ad informatica che non sa programmare ?

    Non ci sono piu' gli inforNatici di una volta

    TU come scriveresti il codice ?
  • Re: Aiuto per esame linguaggio C

    Ho corretto il post aggiungendo il codice scritto da me. Confido nel vostro supporto per colmare la mia lacuna in merito.
  • Re: Aiuto per esame linguaggio C

    Ma non hai detto cosa succede con il tuo codice.

    Magari funziona, dunque, di che parliamo?
  • Re: Aiuto per esame linguaggio C

    Durante la compilazione mi dà id returned 1 exit status. Utilizzo DevC, in più dato l'errore non posso sapere se sintatticamente e semanticamente il codice è funzionale alla traccia.
  • Re: Aiuto per esame linguaggio C

    Per compilare, compila.
    Per funzionare, manco per i ciuffoli.

    E' codice buttato li che ha un BARLUME di parvenza di una sua logica, ma in realta' non c'azzecca per niente.

    Comincia con cose BANALI:

    1) crea un, oggetto di tipo "clientData" DA CODICE
    2) POPOLANO con dei valori che hanno senso, DA CODICE!!!

    RIPETO, DA CODICE,

    NON DA TASTIERA!!!!!!!!!!!

    3) SALVALO su file
    4) CONTROLLA IL CONTENUTO DEL FILE con un editor che ti mostra il contenuto in forma binaria, e CONTROLLA che ci sia QUELLO CHE TI ASPETTI che ci sai
    5) LEGGI il contenuto del file che avevi appena salvato
    6) CONTROLLA che quello che hai letto E' ESATTAMENTE quello che avevi scritto

    Fino a che non ti funzionano questi PRIMI 6 PASSI,

    NON FARE ALTRO (e' INUTILE !!!!)

    QUANDO i precedenti passi funzioneranno, fai la stessa cosa CON 2, quindi CON 10, quindi CON 100 record.

    QUANDO tutto FUNZIONERA' alla perfezione,

    7) GENERA una sequenza di 4 (QUATTRO) record DA CODICE che salverai sul tuo mitico file
    8 ) LEGGI la sequenza di record e calcola la media. MEDIA CHE AVRAI CALCOLATO a mano, in modo da confrontarla con quella calcolata dal TUO programmino

    Nota: non hai lacune, la Fossa delle Marianne e' meno profonda


    NOTA Il codice va inserito nel forum OPPORTUNAMENTE FORMATTATO. Ci sono dei TAG appositi (quelli [ code ] e [ /code ]), pena il taglio di TUTTE le falangi di ENTRAMBE le mani
  • Re: Aiuto per esame linguaggio C

    nstella95 ha scritto:


    Durante la compilazione mi dà id returned 1 exit status. Utilizzo DevC, in più dato l'errore non posso sapere se sintatticamente e semanticamente il codice è funzionale alla traccia.
    ld non id

    Non hai creato un "progetto". Devi creare un progetto, aggiungere tutti i file e compilare.

    Fatto questo potrai controllare se ci sono altri errori di compilazione e/o esecuzione.
Devi accedere o registrarti per scrivere nel forum
7 risposte