panoramix222000 Δημοσ. 28 Οκτωβρίου 2008 Δημοσ. 28 Οκτωβρίου 2008 Γεια σας, θα ήθελα την βοήθεια σας για το παρακάτω πρόγραμμα, το οποίο δεν τρέχει για το παρακάτω error το οποίο δεν το καταλαβαίνω!!! Σε Debian το κάνω compile. > #include <stdio.h> int main(){ int i,n; double x,y,An; x=0; y=1/2; printf("n?"); scanf("%d",&n); while(n>=0){ if(n=0){ printf("a_%d=%f\n",n,x); } if(n=1){ printf("a_%d=%f\n",n,y); if(n>=2){ for(i=2; i<=n; i++){ An=(3*y+2*x)/5; x=y; y=An; } printf("a_%d=%f\n",n,An); } scanf("%d",&n); } return 0; } Kαι το error είναι: > Mihalis.c: In function ʽmainʼ: Mihalis.c:27: error: expected declaration or statement at end of input Ευχαριστώ προκαταβολικά για την βοήθεια!
warchief Δημοσ. 28 Οκτωβρίου 2008 Δημοσ. 28 Οκτωβρίου 2008 Αρχικά ξεχνάς να κλείσεις το πρώτο if statement. if(n=1){ printf("a_%d=%f\n",n,y); --> Εδώ χρειάζεται αγκύλη (}) Παρόλα αυτά και πάλι ο κώδικας έχει κάποια λογικά λάθη: if (n=1), αυτή η συνθήκη είναι πάντα αληθής μιας και δεν πραγματοποιείς σύγκριση (==), αλλα ανάθεση (=) Οπότε πρέπει να αλλάξεις τον κώδικα ως: if (n == 1) { printf(...); } Τώρα μιας και στο if ακολουθεί μόνο μια γραμμή κώδικα μπορείς να εξαλήψεις τις αγκύλες: if (n == 1) printf(...); Μην ξεχάχεις να φτιάξεις την συνθήκη και στο προηγούμενο (πρώτο) if(.) απο συνθήκη ανάθεσης σε συνθήκη σύγκρισης.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.