glaer Δημοσ. 17 Ιανουαρίου 2010 Μέλος Δημοσ. 17 Ιανουαρίου 2010 Ευχαριστω και παλι παιδια, αλλα μου βρισκει ακομα καποια λαθακια...θα σας δειξω ολο τον κωδικα κθως και τα λαθη που μου εντοπιζει ο Dev-C++ (2 λαθη ειναι-τα εχω σαν σχολια)για να μου πειτε που ειναι το λαθος αν μπορειτε... #include <stdio.h>#include <stdlib.h> #include <math.h> #include <float.h> double factorial(int); int main(int argc, char *argv[]) { float Lij[100][100]={0}; float Mij[100][100]={0}; int Ni[100]={0}; int Rj[100]=={0}; int U,S,Cij,Sum,i,j,l; int Coliko; int Loliko; float F; double Pblocking,Pmax; printf("Parakalw pliktrologhste mia timh gia to synolo twn kathgoriwn xrhstwn U:\n"); scanf("%d",&U); printf("Parakalw pliktrologhste mia timh gia to synolo twn ypiresiwn S:\n"); scanf("%d",&S); printf("Parakalw pliktrologhste mia timh gia tin pithanotita Pmax:\n"); scanf("%f",&Pmax); for (i=0; i<U; i++) { printf("Parakalw pliktrologhste mia timh gia to synolo twn xrhstwn Nu se kathe kathgoria xrhstwn uEU:\n"); printf("N%d:",i); scanf("%d",&Ni); } for (j=0; j<S; j++) { printf("Parakalw pliktrologhste mia timh gia to bitrate Rs(bits/second) kathe ypiresias S:\n R(1):"); printf("R%d:",j); scanf("%d",&Rj[j]); } for (i=0; i<U; i++) { for (j=0; j<S; j++) { printf("Parakalw pliktrologhste mia timh gia thn timh tou rythmou afiksis L(u,s)(se 1/minute) kathe xrhsth (u) se kathe ypiresia (s):\n L(1,1):"); printf("L%d,%d:",i,j); scanf("%f",Lij[j]); } } for (i=0; i<U; i++) { for (j=0; j<S; j++) { printf("Parakalw pliktrologhste mia timh gia thn timh tou xronou eksypiretisis M(u,s)(minutes) kathe xristi (u) se kathe ypiresia (s):\n M(1,1):"); printf("M%d,%d:",i,j); scanf("%f",Mij[j]); } } for (j=0;j<S;j++) { for (i=0;i<U;i++) { Loliko=Ni*Lij[j]; F=Loliko*(1/Mij[j]); Cij=0; Sum=0; do { Cij=Cij+1; Sum=Sum+(pow(F,i)/factorial(i)); Pblocking = (pow(F,Cij)/factorial(Cij))/Sum; While (Pblocking>Pmax); } Coliko=Coliko+Cij*Rj[j]; /*ΛΑΘΟΣ:syntax error before Coliko*/ } } printf("to C oliko einai: %lf",Coliko); system("PAUSE"); return 0; } double factorial(int n) { double fact=1; for (int l=1;l<=n;l++) /*ΛΑΘΟΣ:'for' loop initial declaration used outside C99 mode*/ { fact=fact*l; } return fact; }
npapak Δημοσ. 17 Ιανουαρίου 2010 Δημοσ. 17 Ιανουαρίου 2010 > ... for (j=0;j<S;j++) { for (i=0;i<U;i++) { Loliko=Ni[i]*Lij[i][j]; F=Loliko*(1/Mij[i][j]); Cij=0; Sum=0; do { Cij=Cij+1; Sum=Sum+(pow(F,i)/factorial(i)); Pblocking = (pow(F,Cij)/factorial(Cij))/Sum; } While (Pblocking>Pmax); Coliko=Coliko+Cij*Rj[j]; /*ΛΑΘΟΣ:syntax error before Coliko*/ } } .... double factorial(int n) { double fact=1; int l; for (l=1;l<=n;l++) { fact=fact*l; } return fact; } Στο πρώτο λάθος έπρεπε απλα να βάλεις το "{" πριν το while. Το δεύτερο είναι θέμα compiler και δεν δεχόταν την δήλωση του l μέσα στην for. (τουλάχιστον αυτό βρήκα στο internet, γιατί και εγώ πρωτη φορα το ειδα αυτό το error) p.s.: Προσπάθησε να γράφεις πιο ευδιάκριτο κώδικα, σε βοηθάει στο debugging.
virxen75 Δημοσ. 17 Ιανουαρίου 2010 Δημοσ. 17 Ιανουαρίου 2010 τώρα κάνει compile αλλά δεν ξέρω αν δουλεύει σωστά > #include <stdio.h> #include <stdlib.h> #include <math.h> #include <float.h> double factorial(int); int main(){ float Lij[100][100]={0}; float Mij[100][100]={0}; int Ni[100]={0}; int Rj[100]={0}; int U,S,Cij,i,j,l; [color="Red"]double Sum;[/color] [color="Red"]float Coliko; float Loliko;[/color] float F; double Pblocking,Pmax; printf("Parakalw pliktrologhste mia timh gia to synolo twn kathgoriwn xrhstwn U:\n"); scanf("%d",&U); printf("Parakalw pliktrologhste mia timh gia to synolo twn ypiresiwn S:\n"); scanf("%d",&S); printf("Parakalw pliktrologhste mia timh gia tin pithanotita Pmax:\n"); scanf("%f",&Pmax); for (i=0; i<U; i++){ printf("Parakalw pliktrologhste mia timh gia to synolo twn xrhstwn Nu se kathe kathgoria xrhstwn uEU:\n"); printf("N%d:",i); scanf("%d",&Ni[i]); } for (j=0; j<S; j++){ printf("Parakalw pliktrologhste mia timh gia to bitrate Rs(bits/second) kathe ypiresias S:\n R(1):"); printf("R%d:",j); scanf("%d",&Rj[j]); } for (i=0; i<U; i++){ for (j=0; j<S; j++){ printf("Parakalw pliktrologhste mia timh gia thn timh tou rythmou afiksis L(u,s)(se 1/minute) kathe xrhsth (u) se kathe ypiresia (s):\n L(1,1):"); printf("L%d,%d:",i,j); scanf("%f",Lij[i][j]); } } for (i=0; i<U; i++){ for (j=0; j<S; j++){ printf("Parakalw pliktrologhste mia timh gia thn timh tou xronou eksypiretisis M(u,s)(minutes) kathe xristi (u) se kathe ypiresia (s):\n M(1,1):"); printf("M%d,%d:",i,j); scanf("%f",Mij[i][j]); } } for (j=0;j<S;j++){ for (i=0;i<U;i++){ Loliko=Ni[i]*Lij[i][j]; F=Loliko*(1/Mij[i][j]); Cij=0; Sum=0; do{ Cij=Cij+1; Sum=Sum+(pow(F,i)/factorial(i)); Pblocking = (pow(F,Cij)/factorial(Cij))/Sum; [color="Red"]}[/color]while (Pblocking>Pmax); } Coliko=Coliko+Cij*Rj[j]; /*ËÁÈÏÓ:syntax error before Coliko*/ } [color="Red"]//}[/color] printf("to C oliko einai: %lf",Coliko); system("PAUSE"); return 0; } double factorial(int n){ double fact=1; for (int l=1;l<=n;l++){ /*ËÁÈÏÓ:'for' loop initial declaration used outside C99 mode*/ fact=fact*l; } return fact; } Υ.Γ. αν η κατάληξη του αρχείου σου είναι .c κάνε την .cpp
Aztec Δημοσ. 17 Ιανουαρίου 2010 Δημοσ. 17 Ιανουαρίου 2010 Έσβησα το μήνυμα γιατί έχει ειπωθεί πιο πάνω..
glaer Δημοσ. 17 Ιανουαρίου 2010 Μέλος Δημοσ. 17 Ιανουαρίου 2010 Εβαλα το } πριν την while,αλλαξα τις μεταβλητες,αλλαξα και την καταληξη σε .cpp και δεν μου βρισκει πλεον λαθος!ευχαριστω!επιτελους μου εγινε compile... ασχετο το υπαρχει καποιο λαθος στον τροπο που υπολογιζει αυτο που θελω και δεν μπορω να βρω τι...
virxen75 Δημοσ. 17 Ιανουαρίου 2010 Δημοσ. 17 Ιανουαρίου 2010 Εβαλα το } πριν την while,αλλαξα τις μεταβλητες,αλλαξα και την καταληξη σε .cpp και δεν μου βρισκει πλεον λαθος!ευχαριστω!επιτελους μου εγινε compile... ασχετο το υπαρχει καποιο λαθος στον τροπο που υπολογιζει αυτο που θελω και δεν μπορω να βρω τι... μαθηματικά τι υπολογισμοί πρέπει να γίνουν? δώσε και ένα αριθμητικό παράδειγμα
glaer Δημοσ. 18 Ιανουαρίου 2010 Μέλος Δημοσ. 18 Ιανουαρίου 2010 μαθηματικά τι υπολογισμοί πρέπει να γίνουν?δώσε και ένα αριθμητικό παράδειγμα Eυχαριστω πολυ αλλα το ελυσα τωρα! πανω στην ωρα γιατι πρεπει να το παραδωσω αυριο
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.