asximos76 Δημοσ. 24 Οκτωβρίου 2008 Δημοσ. 24 Οκτωβρίου 2008 /*στο προ/κι αυτο μου βγαζει ενα error*/ /*Paradeigma diavasmatos arxeiou*/ /*33: error: parse error before "return"*/ #include <stdio.h> #include <stdlib.h> void mesi_timi (char onoma_arxeiou[]) { FILE *arxeio; int arithmos,athroisma,plithos; double mesos_oros; athroisma=0; plithos=0; if ((arxeio=fopen(onoma_arxeiou,"r"))==NULL) { fprintf(stderr,"lathos anoigma arxeiou: %s",onoma_arxeiou); exit(-1); } fscanf(arxeio,"%d",arithmos); while(!feof(arxeio)) { athroisma+=arithmos; plithos++; fscanf(arxeio,"%d",arithmos); } fclose(arxeio); if(plithos==0) mesos_oros=0; else mesos_oros=(double)athroisma/plithos; printf("\n plithos arithmon:%d",plithos); printf("\n mesi timi:%f",mesos_oros); } 33: return 0; /*33: error: parse error before "return"*/
georgemarios Δημοσ. 24 Οκτωβρίου 2008 Δημοσ. 24 Οκτωβρίου 2008 βαλε τον κωδικα σου μεσα σε [code ] μπλοκς για να ειναι αναγνωσιμος α, και αλλαξε το fscanf(arxeio,"%d",arithmos); με fscanf(arxeio,"%d",&arithmos); βαλε δηλ ενα & μπροστα στο arithmos και βλεπουμε....
Aesmade Δημοσ. 24 Οκτωβρίου 2008 Δημοσ. 24 Οκτωβρίου 2008 Το return το έβαλες έξω από τη συνάρτηση, πρέπει ή να το βάλεις πριν το } ή να το σβήσεις, αλλά αν η συνάρτηση είναι void τότε δεν μπορεί να κάνει return κάτι.
Aesmade Δημοσ. 24 Οκτωβρίου 2008 Δημοσ. 24 Οκτωβρίου 2008 Υποθέτω λες για το ποστ του georgemarios, το &arithmos δίνει τη διεύθυνση στη μνήμη όπου είναι αποθηκευμένο το arithmos, το fscanf τη χρειάζεται για να γράψει εκεί το αποτέλεσμα. Είναι πιο κατανοητό αν ξέρεις λίγη assembly και πώς γίνονται τα calls και τα pushes. Αυτό όμως θα έκανε runtime και όχι compiletime error, οπότε μάλλον δεν είναι αυτό που κάνει το parse error before "return".
georgemarios Δημοσ. 24 Οκτωβρίου 2008 Δημοσ. 24 Οκτωβρίου 2008 ναι, στο & απλα επεσε το ματι μου και το ανεφερα. ειναι στανταρ λαθος και πρεπει να το διορθωσεις αλλιως θα σκασει το προγραμμα οταν το τρεξεις.... ειναι το run-time error που σου λεει ο Aesmade για τωρα, απλα σβησε το return 0
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.