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

πρόβλημα με κώδικα c


andreapaog328

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

Δημοσ.

>
#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...που κάνω λάθος?:rolleyes:

 

edit: μάλλον έχω μπερδέψει τα μπούτια μου με τις μεταβλητές...

Δημοσ.

Ο τελεστής με τον οποίο συγκρίνεις αν μια μεταβλητή έχει μια τιμή α είναι ο == και όχι ο =, που είναι τελεστής που αναθέτει στην μεταβλητή αριστερά ότι υπάρχει στα δεξία.

 

Για να καταλάβεις

 

η

>if(choice=1)

αναθέτει στην choice την τιμή 1

 

εδώ

>if(choice[b]==[/b]1)

συγκρίνει αν η choice είναι ίση με 1. Αν και, εκτελεί ότι έχει στις αγκύλες.

 

Επίσης, λίγο ασχέτο, αλλά όλο αυτό το νταλαβέρι με τις if structures, θα μπορούσες να το κάνεις με switch case.

Δημοσ.
ναι το θέμα με το == μου διέφυγε...

 

κάτι άλλο...μπορώ να δείξω έναν float με όσα δεκαδικά ψηφία θέλω εγώ?

 

 

ναι, παίζοντας με την printf και βάζοντας μέσα στο %f ένα .x, όπου x τα δεκαδικά ψηφία που θες

 

πχ

 

>float hello = 12.3456;
printf("hello equals %.2f.\n", hello);

που αυτό δίνει ως αποτέλεσμα

~$ hello equals 12.34

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

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

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