andreapaog328 Δημοσ. 8 Μαρτίου 2009 Δημοσ. 8 Μαρτίου 2009 > #include <stdio.h> main(){ int choice,i=1; float a,b,c,sum; printf("1.Add\n2.Subtract\n3.Multiply\n4.Devide\n5.Square root\n6.Factorial\n\nChoose calc: \n"); scanf("%d",&choice); if(choice=1){ printf("Insert two numbers to add:\n"); scanf("%f",&a); scanf("%f",&; printf("%f + %f = %f\n",a,b,a+; } else if(choice=2){ printf("Insert two numbers to subtract:\n"); scanf("%f",&a); scanf("%f",&; printf("%f - %f = %f\n",a,b,a-; } else if(choice=3){ printf("Insert two numbers to multiply:\n"); scanf("%f",&a); scanf("%f",&; printf("%f * %f = %f\n",a,b,a*; } } προσπαθώ να φτιάξω ένα απλό κομπιουτεράκι σε c...τρέχει όλα καλά (λέμε τώρα) αλλά ας πούμε ότι αν επιλέξω choice = 2 πάει και εκτελεί τις εντολές του choice = 1...που κάνω λάθος? edit: μάλλον έχω μπερδέψει τα μπούτια μου με τις μεταβλητές...
WordUp Δημοσ. 8 Μαρτίου 2009 Δημοσ. 8 Μαρτίου 2009 Ο τελεστής με τον οποίο συγκρίνεις αν μια μεταβλητή έχει μια τιμή α είναι ο == και όχι ο =, που είναι τελεστής που αναθέτει στην μεταβλητή αριστερά ότι υπάρχει στα δεξία. Για να καταλάβεις η >if(choice=1) αναθέτει στην choice την τιμή 1 εδώ >if(choice[b]==[/b]1) συγκρίνει αν η choice είναι ίση με 1. Αν και, εκτελεί ότι έχει στις αγκύλες. Επίσης, λίγο ασχέτο, αλλά όλο αυτό το νταλαβέρι με τις if structures, θα μπορούσες να το κάνεις με switch case.
andreapaog328 Δημοσ. 8 Μαρτίου 2009 Μέλος Δημοσ. 8 Μαρτίου 2009 ναι το θέμα με το == μου διέφυγε... κάτι άλλο...μπορώ να δείξω έναν float με όσα δεκαδικά ψηφία θέλω εγώ?
WordUp Δημοσ. 8 Μαρτίου 2009 Δημοσ. 8 Μαρτίου 2009 ναι το θέμα με το == μου διέφυγε... κάτι άλλο...μπορώ να δείξω έναν float με όσα δεκαδικά ψηφία θέλω εγώ? ναι, παίζοντας με την printf και βάζοντας μέσα στο %f ένα .x, όπου x τα δεκαδικά ψηφία που θες πχ >float hello = 12.3456; printf("hello equals %.2f.\n", hello); που αυτό δίνει ως αποτέλεσμα ~$ hello equals 12.34
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.