2016-04-26 8 views
0

Hallo Ich habe diesen Code hier versuchen den Benutzer über den Standort zu fragen.Wenn der Benutzer den Ort gibt es nur sagt tschüss.Was ist falsch in meinem Code?If - else Programm

#include<stdio.h> 

int main() 
{ 

     char location[15]; 
     printf("1:Greencourt\n"); 
     printf("2:Corianthans\n"); 
     printf("3:Shop\n"); 
     printf("Enter a location\n"); 
     scanf("%s",location); 
     if(location=="Greencourt") 
     printf("Bisleri bottle cost 25 rupees\n"); 
     else 
     if(location=="Shop") 
     printf("Bisleri bottle cost 15 rupees\n"); 
     else 
     if(location=="Corianthans") 
     printf("Bisleri bottle cost 50\n"); 
     else 
     printf("Bye"); 

     return 0; 
} 

Hier ist die Ausgabe

1:Greencourt 
2:Corianthans 
3:Shop 
Enter a location 

Shop 

Bye 
+0

Bessere Nutzung strcmp vergleichen für Streicher –

+1

Da die Frage mit C markiert ++ compaiting, Ich würde vorschlagen, dass Sie 'std :: string' anstelle von einfachen char-Arrays verwenden. – soon

+0

Bitte den Code einrücken. –

Antwort

3

Sie vergleichen Strings (array of char) Sie können nicht '==' Operator. Sie sollten strcmp Funktion:

int strcmp(const char *str1, const char *str2) 

so:

if(strcmp(location,"Greencourt") == 0) 
+3

sollte es wahrscheinlich 'if (! Strcmp (location," Greencourt "))', da strcmp wird 0 zurückgeben, wenn die Zeichenfolgen "gleich" sind –

+0

@EugeneAnisiutkin ja , danke – granmirupa

+0

Achte darauf, dass strcmp 0 zurücksetzt, wenn die Strings gleich sind. Daher ist die obige Antwort nicht ganz korrekt, aber es geht in die richtige Richtung – Nobby

1

Es ist besser, wenn Sie Werte mit strcmp()

+0

#include #include int main() { Zeichenposition [16]; \t printf ("1: GT \ n"); \t printf ("2: Cori \ n"); \t printf ("3: Shop \ n"); \t printf ("Geben Sie einen Ort ein \ n"); scanf ("% s", Standort); if (strcmp (location, "GT") == 0) printf ("Bisleri Flasche kostet 25 Rupien \ n"); sonst if (strcmp (Standort, "Shop") == 0) \t printf ("Bisleri Flasche kostet 15 Rupien \ n"); sonst if (strcmp (Ort, "Cori") == 0) \t printf ("Bisleri Flasche kostet 50 \ n"); sonst printf ("Tschüß"); Rückgabe 0; } \t ~/MY_C $ ./a.out 1: GT 2: Cori 3: Geschäft – Neeld