Προς το περιεχόμενο

SOS για βοήθεια σε πρόγραμμα σε C!!


panoramix222000

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας, θα ήθελα την βοήθεια σας για το παρακάτω πρόγραμμα, το οποίο δεν τρέχει για το παρακάτω 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

Ευχαριστώ προκαταβολικά για την βοήθεια!

Δημοσ.

Αρχικά ξεχνάς να κλείσεις το πρώτο 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(.) απο συνθήκη ανάθεσης σε συνθήκη σύγκρισης.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...