ampoulog Δημοσ. 23 Ιουνίου 2007 Δημοσ. 23 Ιουνίου 2007 Είμαι νέος χρήστης της C και αντιμετωπίζω πρόβλημα όταν καλώ την παρακάτω συνάρτηση στο main(). Οι πίνακες r,az,x,y,sa_x,sa_y έχουν δημιουργηθεί ύστερα από δυναμική δέσμευση μνήμης με την malloc και είναι τύπου double . void cl_pos(double stigma_x,double stigma_y,double *r,double *az,double *x,double *y,double *sa_x,double *sa_y,int arithmos_pthsewn) { int i; for(i=0;i<arithmos_pthsewn;i++){ *(x+i)=(*(r+i))*cos((*(az+i))*PI/180); *(y+i)=r*sin(az*PI/180); *(sa_x+i)=stigma_x+(9*y/1000); *(sa_y+i)=stigma_y+(9*y/1000); } } Το σφάλμα που εμφανίζει είναι : error C2664: cannot convert parameter 3 from 'double**' to 'double*'. και δείχνει την σειρά που καλώ την συνάρτηση ως εξής: cl_pos(stigma_x,stigma_y,&r,&az,&x,&y,&sa_x,&sa_y,arithmos_pthsewn); :confused:Που έχω κάνει λάθος. Ας με βοηθήσει κάποιος
alkisg Δημοσ. 23 Ιουνίου 2007 Δημοσ. 23 Ιουνίου 2007 Τον r λογικά τον έχεις δηλώσει double *r. Την παράμετρο την έχεις double *r. Επομένως μην καλείς την cl_pos με &r αλλά με σκέτο r.
ampoulog Δημοσ. 23 Ιουνίου 2007 Μέλος Δημοσ. 23 Ιουνίου 2007 Κατα τα αλλα ειναι σωστο? Ευχσριστώ πολυ.
ampoulog Δημοσ. 23 Ιουνίου 2007 Μέλος Δημοσ. 23 Ιουνίου 2007 To έκανα αυτό αλλά όταν τυπώνω το χ αυτό τυπώνει την τιμή που θα έπρεπε να είχε , ενω το y έχει άλλη τιμή
alkisg Δημοσ. 23 Ιουνίου 2007 Δημοσ. 23 Ιουνίου 2007 Σε τέτοια λογικά λάθη θα πρέπει να δείξεις όλον τον κώδικα... Επίσης γιατί άλλοτε τα χρησιμοποιείς σαν pointers και άλλοτε σαν πίνακες; Χρησιμοποίησέ τα πάντα σαν πίνακες, είναι πιο ευανάγνωστο. Δηλαδή μη γράφεις *(sa_x+i), γράψε sa_x.
ampoulog Δημοσ. 23 Ιουνίου 2007 Μέλος Δημοσ. 23 Ιουνίου 2007 Ολοκληρος ο κώδικας είναι : #include <stdio.h>/*gia thn xrhsh twn scanf kai printf*/ #include <stdlib.h>/*gia thn xrhsh twn gets puts ktl*/ #include <conio.h>/*gia thn xrhsh ths getch*/ #include <math.h> /*gia thn xrhsh twn sin,cos*/ #define PI 3.14159265/*o arithmos p */ void cl_pos(double stigma_x,double stigma_y,double *r,double *az,double *x,double *y,double *sa_x,double *sa_y,int arithmos_pthsewn); void main() { double stigma_x,stigma_y,*r,*az,*x,*y,*sa_x,*sa_y; int arithmos_pthsewn,*arithmos_ptisis,i,size_ap,size_r; printf("\t\t Dose to stigma tou aeroplanou\n"); printf("\t\t\t Prwta dose to Geographiko Mhkos :\t"); scanf("%d",&stigma_x); printf("\t\t\t Twra dose to Geographiko Platos :\t"); scanf("%d",&stigma_y); printf("\n\n\t\t Dose to plhthos twn pthsewn : \t\t"); scanf("%d",&arithmos_pthsewn); size_ap=(arithmos_pthsewn)*(sizeof(int)); arithmos_ptisis=(int*)malloc(size_ap); if(arithmos_ptisis==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!"); exit(1); } size_r=(arithmos_pthsewn)*(sizeof(double)); r=(double*)malloc(size_r); if(r==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!"); exit(2); } az=(double*)malloc(size_r); if(az==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!"); exit(3); } x=(double*)malloc(size_r); if(x==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!"); exit(4); } y=(double*)malloc(size_r); if(y==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!"); exit(5); } sa_x=(double*)malloc(size_r); if(sa_x==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!"); exit(6); } sa_y=(double*)malloc(size_r); if(sa_y==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!"); exit(7); } for(i=0;i<arithmos_pthsewn;i++){ printf("\n\t\t Dose ton arithmo pthshs tou %i ou aeroplanou : \t",i+1); scanf("%d",&arithmos_ptisis); printf("\n\t\t Dose thn apostash tou aeroplanou (me arithmo pthshs %d)apo to radar : \t",arithmos_ptisis); scanf("%d",&r); printf("\n\t\t Dose ton antistoixo azimouthio arithmo gia thn thesh tou parapanw aeroplanou :\t"); scanf("%d",&az); printf("\n"); x=0; y=0; sa_x=0; sa_y=0; } cl_pos(stigma_x,stigma_y,r,az,x,y,sa_x,sa_y,arithmos_pthsewn); for(i=0;i<arithmos_pthsewn;i++){ printf("\n\t\t Oi Kartesiannes syntetagmenes gia to aeroplano me arithmo ptisis %d einai :\t %d\t%d \n",arithmos_ptisis,*(x+i),*(y+i)); } free(arithmos_ptisis); free®; free(az); free(x); free(y); free(sa_x); free(sa_y); } void cl_pos(double stigma_x,double stigma_y,double *r,double *az,double *x,double *y,double *sa_x,double *sa_y,int arithmos_pthsewn) { int i; double param; for(i=0;i<arithmos_pthsewn;i++){ param=*(az+i); *(x+i)=(*(r+i))*(cos(param*PI/180)); *(y+i)=(*(r+i))*(sin(param*PI/180)); *((sa_x)+i)=stigma_x+(9*(*(x+i))/1000); *((sa_y)+i)=stigma_y+(9*(*(y+i))/1000); } }
ampoulog Δημοσ. 23 Ιουνίου 2007 Μέλος Δημοσ. 23 Ιουνίου 2007 Απλα μέσα στην συνάρτηση πρέπει να κάνω κλήση με αναφορά για να αλλάξω τις τιμές των χ,y ,sa_x,sa_y. Και ακόμη έχω τους εξής περιορισμούς : α) Να μην χρησιμοποιηθούν πουθενά γενικές μεταβλητές. β)Η μνήμη για τους πίνακες που θα χρησιμοποιηθούν να δεσμεύεται δυναμικά. γ) Οι συναρτήσεις cl_pos και cover δε διαβάζουν τιμές και δεν τυπώνουν αποτελέσματα.
bilco Δημοσ. 23 Ιουνίου 2007 Δημοσ. 23 Ιουνίου 2007 %d είναι για ακέραιο στις printf και scanf. Χρησιμοποίησε %f για δεκαδικούς και + στον alkisg Δηλαδή μη γράφεις *(sa_x+i), γράψε sa_x.
ampoulog Δημοσ. 23 Ιουνίου 2007 Μέλος Δημοσ. 23 Ιουνίου 2007 Ok θα το δοκιμάσω , και θα σας πω. Αλλά έχω την αίσθηση ότι μου παρουσιαζει τις διευθύνσεις των y. Πάντως ευχαριστώ.
ampoulog Δημοσ. 24 Ιουνίου 2007 Μέλος Δημοσ. 24 Ιουνίου 2007 %d είναι για ακέραιο στις printf και scanf. Χρησιμοποίησε %f για δεκαδικούς και + στον alkisg To sa_x να το γράψω και μέσα στην cl_pos?
bilco Δημοσ. 24 Ιουνίου 2007 Δημοσ. 24 Ιουνίου 2007 > void cl_pos(double stigma_x,double stigma_y,double *r,double *az, double *x,double *y,double *sa_x,double *sa_y,int arithmos_pthsewn) { int i; double rad_angle; for(i=0;i<arithmos_pthsewn;i++){ rad_angle=az[i]*PI/180.; x[i]=r[i]*cos(rad_angle); y[i]=r[i]*sin(rad_angle); sa_x[i]=stigma_x+9.*x[i]/1000.; sa_y[i]=stigma_y+9.*y[i]/1000.; } }
ampoulog Δημοσ. 26 Ιουνίου 2007 Μέλος Δημοσ. 26 Ιουνίου 2007 Εχω τροποποιήσει το πρόγραμμά μου στο παρακάτω : #include <stdio.h>/*gia thn xrhsh twn scanf kai printf*/ #include <stdlib.h>/*gia thn xrhsh twn gets puts ktl*/ #include <conio.h>/*gia thn xrhsh ths getch*/ #include <math.h> /*gia thn xrhsh twn sin,cos*/ #define PI 3.14159265/*o arithmos p */ void cl_pos(double stigma_x,double stigma_y,double *r,double *az,double *x,double *y,double *sa_x,double *sa_y,int arithmos_pthsewn); void cover(double *sa_x,double *sa_y,int *m1,int*m2 ,int*l1,int*l2,int*d1,int*d2); void main() { double stigma_x,stigma_y,*r,*az,*x,*y,*sa_x,*sa_y,dis; int arithmos_pthsewn,*arithmos_ptisis,i,j,size_ap,size_r,*m1,*m2,*l1,*l2,*d1,*d2; printf("\t\t Dose to stigma tou aeroplanou\n"); printf("\t\t\t Prwta dose to Geographiko Mhkos :\t"); scanf("%d",&stigma_x); printf("\t\t\t Twra dose to Geographiko Platos :\t"); scanf("%d",&stigma_y); printf("\n\n\t\t Dose to plhthos twn pthsewn : \t\t"); scanf("%d",&arithmos_pthsewn); size_ap=(arithmos_pthsewn)*(sizeof(int)); arithmos_ptisis=(int*)malloc(size_ap); if(arithmos_ptisis==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(1); } size_r=(arithmos_pthsewn)*(sizeof(double)); r=(double*)malloc(size_r); if(r==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(2); } az=(double*)malloc(size_r); if(az==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(3); } x=(double*)malloc(size_r); if(x==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(4); } y=(double*)malloc(size_r); if(y==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(5); } sa_x=(double*)malloc(size_r); if(sa_x==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!"); exit(6); } sa_y=(double*)malloc(size_r); if(sa_y==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!"); exit(7); } for(i=0;i<arithmos_pthsewn;i++){ printf("\n\t\t Dose ton arithmo pthshs tou %i ou aeroplanou : \t",i+1); scanf("%d",&arithmos_ptisis); printf("\n\t\t Dose thn apostash tou aeroplanou (me arithmo pthshs %d)apo to radar : \t",arithmos_ptisis); scanf("%d",&r); printf("\n\t\t Dose ton antistoixo azimouthio arithmo gia thn thesh tou parapanw aeroplanou :\t"); scanf("%d",&az); printf("\n"); x=0; y=0; sa_x=0; sa_y=0; } cl_pos(stigma_x,stigma_y,r,az,x,y,sa_x,sa_y,arithmos_pthsewn); for(i=0;i<arithmos_pthsewn;i++){ printf("\n\t\t Oi Kartesiannes syntetagmenes gia to aeroplano me arithmo ptisis %d einai :\t %d\t%d \n",arithmos_ptisis,x,y); } m2=(int*)malloc(size_ap); if(m2==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(8); } m1=(int*)malloc(size_ap); if(m1==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(9); } l1=(int*)malloc(size_ap); if(l1==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(10); } l2=(int*)malloc(size_ap); if(l2==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(11); } d1=(int*)malloc(size_ap); if(d1==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(12); } d2=(int*)malloc(size_ap); if(d2==NULL){ printf("\n\n\t\t\t Den yparxei arkrth mnhmh!!!\n\t\t\t To programma tha termatistei!!!\n"); exit(13); } if(arithmos_pthsewn>1){ for(i=0;i<arithmos_pthsewn;i++){ for(j=0;j<arithmos_pthsewn;j++){ dis=sqrt(pow(x-x[j],2)+pow(y-y[j],2)); if((dis<10)||(i!=j)){ cover(&sa_x,&sa_y,&m1,&m2,&l1,&l2,&d1,&d2); cover(&sa_x[j],&sa_y[j],&m1[j],&m2[j],&l1[j],&l2[j],&d1[j],&d2[j]); printf("\n\n\t\t\t To aeroplano me arithmo pthshs : %i kai stigma %d.%d.%d,%d.%d.%d \n\t\t\t vrisketh se apostash mikroterh twn 10 metrwn me \n\t\t\t to aeroplano me arithmo ptisis %i kai stigma %d.%d.%d , %d.%d.%d\n",arithmos_ptisis,*m1,*l1,*d1,arithmos_ptisis[j],*m2,*l2,*d2); } } } } free(arithmos_ptisis); free®; free(az); free(x); free(y); free(sa_x); free(sa_y); free(m1); free(m2); free(d1); free(d2); free(l1); free(l2); } void cl_pos(double stigma_x,double stigma_y,double *r,double *az,double *x,double *y,double *sa_x,double *sa_y,int arithmos_pthsewn) { int i; double param; for(i=0;i<arithmos_pthsewn;i++){ param=az*PI/180; x=r*(cos(param)); y=r*(sin(param)); sa_x=stigma_x+(9.*x/1000); sa_y=stigma_y+(9.*y/1000); } } void cover(double *sa_x,double *sa_y,int*m1,int *m2,int*l1,int *l2,int*d1,int *d2) { *m1=(int)(*sa_x); *l1=(int)((((*sa_x)*100)-(*m1)*100)*60/100); *d1=((((((*sa_x)*100)-(*m1)*100)*60/100)-(*l1))*60/100); *m2=(int)(*sa_y); *l2=(int)((((*sa_y)*100)-(*m2)*100)*60/100); *d2=((((((*sa_y)*100)-(*m2)*100)*60/100)-(*l2))*60/100); } Αλλά συνεχίζει να μου εκτυπώνει διευθύνσεις μνήμης και όχι το περιεχόμενο τους. Τι να κάνω;
bilco Δημοσ. 26 Ιουνίου 2007 Δημοσ. 26 Ιουνίου 2007 -Δώσε την εκφώνηση του προβλήματος -Σχολίασε αναλυτικά τον κωδικά σου (σκοπός συναρτήσεων-ορίσματα, χρήση τοπικών μεταβλητών) -Χρησιμοποίησε CODE brackets για να γράψεις εδώ τον κωδικά σου
ampoulog Δημοσ. 26 Ιουνίου 2007 Μέλος Δημοσ. 26 Ιουνίου 2007 -Δώσε την εκφώνηση του προβλήματος-Σχολίασε αναλυτικά τον κωδικά σου (σκοπός συναρτήσεων-ορίσματα, χρήση τοπικών μεταβλητών) -Χρησιμοποίησε CODE brackets για να γράψεις εδώ τον κωδικά σου H εκφώνηση είναι η παρακάτω: Εργασία D (Hμ/νία λήξης δηλώσεων: 26/06/2007) Ο έλεγχος της εναέριας κυκλοφορίας στην περιοχή ενός αεροδρομίου υλοποιείται με τον ορισμό ενός συστήματος καρτεσιανών συντεταγμένων στο οποίο ο άξονας των x ταυτίζεται με τη διεύθυνση βοράς ? νότος και η αρχή των αξόνων με το κέντρο της βάσης στήριξης του ραντάρ του αεροδρομίου. Σε κάθε στιγμή η θέση ενός αεροπλάνου προσδιορίζεται από την απόσταση του r από το ραντάρ και από το αζιμούθιο της θέσης του (ως αζιμούθιο ορίζεται η γωνία που σχηματίζει η ευθεία ραντάρ ? αεροπλάνο με τη διεύθυνση του βορά μετρούμενη κατά την αντίστροφη φορά των δεικτών του ωρολογίου)(πολικές συντεταγμένες). Το στίγμα (γεωγραφικό μήκος και πλάτος) του αεροπλάνου προσδιορίζεται σε μοίρες προσθέτοντας στο γεωγραφικό μήκος του ραντάρ του αεροδρομίου την τιμή 0,009y και στο γεωγραφικό πλάτος του ραντάρ την τιμή 0,009x. Όπου x και y οι καρτεσιανές συντεταγμένες σε χιλιόμετρα του αεροπλάνου σε σχέση με το σύστημα συντεταγμένων που ορίσθηκε στο αεροδρόμιο. Ζητείται να γραφεί το πρόγραμμα στο οποίο να ορίζεται η συνάρτηση void cl_pos(?) η οποία δέχεται μέσα από τα ορίσματά της την απόσταση και το αζιμούθιο ενός αεροπλάνου και υπολογίζει το στίγμα του και τις καρτεσιανές συντεταγμένες του ως προς το σύστημα συντεταγμένων του αεροδρομίου. Η συνάρτηση main του προγράμματος να διαβάζει το στίγμα του αεροδρομίου, τον αριθμό της πτήσης, την απόσταση και το αζιμούθιο για n αεροπλάνα, να χρησιμοποιεί τη συνάρτηση cl_pos για να υπολογίσει το στίγμα και τις καρτεσιανές συντεταγμένες τους και να εκτυπώνει τον αριθμό της πτήσης και τα στίγματα όλων των αεροπλάνων. Ακόμη να τυπώνει τον αριθμό της πτήσης, το στίγμα και ένα προειδοποιητικό μήνυμα για όσα αεροπλάνα βρεθούν να απέχουν μεταξύ τους απόσταση μικρότερη από 10 χιλιόμετρα. Το στίγμα να τυπώνεται στην οθόνη με τη μορφή μμ.λλ.δδ . Για την μετατροπή του στίγματος σε αυτήν τη μορφή να γραφεί η συνάρτηση void cover(?) η οποία δέχεται ως όρισμα μια γωνία σε μοίρες (μορφή δεκαδικού αριθμού) και επιστρέφει τις ακέραιες μοίρες τα λεπτά και τα δευτερόλεπτα. Σημείωση: α) Να μην χρησιμοποιηθούν πουθενά γενικές μεταβλητές. β)Η μνήμη για τους πίνακες που θα χρησιμοποιηθούν να δεσμεύεται δυναμικά. γ) Οι συναρτήσεις cl_pos και cover δε διαβάζουν τιμές και δεν τυπώνουν αποτελέσματα. >-------------------------------------------------------
bilco Δημοσ. 27 Ιουνίου 2007 Δημοσ. 27 Ιουνίου 2007 Η scanf δεν δέχεται δείκτη σε double. Πρέπει να χρησιμοποιήσεις μια float μεταβλητή για να παίρνεις τον αριθμό και μετά να την μετατρέπεις σε double π.χ. > float fget; .... scanf("%f", &fget); stigma_x = (double)fget; Η cover είναι λάθος (δεν υπολογίζει σωστά τα δεύτερα). Ακόμα δεν χρειάζεται να χρησιμοποιείς πίνακες γι αυτή τη μετατροπή (και τους χρησιμοποιείς και λάθος). Τρείς ακέραιες τοπικές μεταβλητές >int m,l,d; στη main είναι αρκετές. > void cover(double angle, int* m, int* d, int* l) { *m = (int)angle; // Βρίσκουμε πρώτα πόσα δεύτερα έχει το δεκαδικό μέρος συνολικά *d = (int)((angle - *m) * 3600.); // Βρίσκουμε τα λεπτά διαιρώντας τα δευτ. με 60 *l = *d / 60; // Τα δεύτερα είναι το υπόλοιπο αυτής της διαίρεσης *d %= 60; } Για να χρησιμοποιήσουμε μόνο τρείς μεταβλητές m,l,d (όσο λιγότερες τοπικές μεταβλητές τόσο καλύτερα) σπάμε την printf όπου χρειάζεται, έτσι η > printf("\n\n\t\t\t To aeroplano me arithmo pthshs : %d kai stigma %d.%d.%d,%d.%d.%d \n\t\t\t vrisketh se " "apostash mikroterh twn 10 metrwn me \n\t\t\t to aeroplano me arithmo ptisis %d kai " "stigma %d.%d.%d , %d.%d.%d\n",arithmos_ptisis[i],*m1,*l1,*d1,arithmos_ptisis[j],*m2,*l2,*d2); (που είναι και λάθος αφού οι μεταβλητές μέσα στη string είναι περισσότερες από τα ορίσματα που ακολουθούν) γίνεται > cover(sa_x[i], &m, &l, &d); printf("\n\n\t To aeroplano me arithmo pthshs : %d kai stigma %d.%d.%d, ", arithmos_ptisis[i], m, l, d); cover(sa_y[i], &m, &l, &d); printf("%d.%d.%d \n\t vrisketh se apostash mikroterh twn 10 metrwn me ", m, l, d); cover(sa_x[j], &m, &l, &d); printf("\n\t to aeroplano me arithmo ptisis %d kai stigma %d.%d.%d, ", arithmos_ptisis[j], m, l, d); cover(sa_y[j], &m, &l, &d); printf("%d.%d.%d\n", m, l, d); Στο διπλό for-loop για τον έλεγχο αν δύο πτήσεις είναι σε απόσταση μικρότερη των 10m, στον εσωτερικό βρόγχο ξεκινάμε από j=i+1 (οι συγκρίσεις i,j για j < i έχουν ήδη γίνει σε προηγούμενες επαναλήψεις). Στον εξωτερικό βρόγχο το i δεν χρειάζεται να φτάνει μέχρι το τελευταίο στοιχείο του πίνακα, αλλά μέχρι το πρότελευταίο. > for(i = 0; i < arithmos_pthsewn - 1; i++){ for(j = i + 1; j < arithmos_pthsewn; j++){ dis = sqrt(pow(x[i] - x[j], 2) + pow(y[i] - y[j], 2)); if(dis < 10.){ cover(sa_x[i], &m, &l, &d); printf("\n\n\t To aeroplano me arithmo pthshs : %d kai stigma %d.%d.%d, ", arithmos_ptisis[i], m, l, d); cover(sa_y[i], &m, &l, &d); printf("%d.%d.%d \n\t vrisketh se apostash mikroterh twn 10 metrwn me ", m, l, d); cover(sa_x[j], &m, &l, &d); printf("\n\t to aeroplano me arithmo ptisis %d kai stigma %d.%d.%d, ", arithmos_ptisis[j], m, l, d); cover(sa_y[j], &m, &l, &d); printf("%d.%d.%d\n", m, l, d); } } } Στην printf η %f αναφέρεται σε double μεταβλητή και η %d σε ακέραιο. Καλό είναι στους αριθμούς κινητής υποδιαστολής να ορίζουμε και πόσα δεκαδικά ψηφία θα εμφανίζονται γράφοντας π.χ. %.3f για τρία δεκαδικά ψηφία. > printf("\n\t Oi Kartesiannes syntetagmenes gia to aeroplano " "me arithmo ptisis %d einai :\t %.3f\t%.3f\n", arithmos_ptisis[i], x[i], y[i]);
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.