Ergebnis 1 bis 5 von 5

Thema: Strcmp gibt immer das gleiche aus

  1. #1
    itsbidiopen
    Gast

    Standard Strcmp gibt immer das gleiche aus

    Hi Leute,

    Ich hab da ein problem mit StringCompair und Kriegs net gelöst. ich wollte für meine schwester (5. Klasse) ein Programm schreiben mit dem sie lernen kann und dass man leich ändern kann.
    Es geht darum zu beschreiben ob zwischen dem anfangswert und dem endwert eine zunahme oder eine abnahme stattfindet und um wie viel abgenommen bzw zugenommen wird. Bitte nicht hinschreiben, dass das programm zu lang ist oder ähnliches, da ich erst vor kurzem angefangen hab mit C zu programmieren.

    hier also ein auszug aus dem Programm:

    Code:
    #include <cstdlib>
    #include <iostream>
    #define TRUE  1
    #define FALSE 0
    int StringCompare(char *s1, char *s2);
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
    
    [...]
    
    
    int Anfang21 = 34 ;
        int Ende21 = 43 ;
        int Eingabe13;
        int Ergebnis13 = Ende21-Anfang21;
        char ZuOdAb21[100];
        char Richtig21 [] = "Zunahme";
        
        printf("\nAnfangtemperatur: %d\n",Anfang21);
        printf("Endtemperatur: %d\n",Ende21);
        printf("Zu- oder Abnahme:");
        scanf("c",&ZuOdAb21);
        fflush(stdin);
        printf("Wert der Zu- bzw. Abnahme:");
        scanf("%d",&Eingabe13);
        fflush(stdin);
        printf("\n");
        system("PAUSE");
        
        if(strcmp(ZuOdAb21, Richtig21))
        {   
                     printf("Richtig!! Es ist eine %s.\n",Richtig21);
                     if(Eingabe13==Ergebnis13)
                     {
                                             printf("Richtig!! Es ist eine %s um d.\n",Richtig21,Ergebnis13);
                     }
                     else
                     {
                         printf("Leider falsch. Es ist eine %s um %d.\n",Richtig21,Ergebnis13);
                     }
        }
        else
        {
            printf("Leider falsch. Die richtige Antwort w\x84re %s um %d 
                                            gewesen\n",Richtig21,Ergebnis13);
        }
        system("PAUSE");
    
    [...]
    
    }
    Das Problem ist jetzt, dass die Bedingung des ersten if-befehls immer wahr ist und der pc immer ausgibt, dass bei der eingabe ob es eine Zu- oder Abnahme ist ausgibt,dass dort die richtige antwort steht. der rest funktioniert soweit ganz gut.

    ich würde mich wirklich über antworten und hilfen freuen und danke euch schonmal im vorraus.

    PS.: ich habs überprüft der gibt als wert von strcmp immer 1 aus.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in)
    Registriert seit
    07.02.2009
    Ort
    Leipzig
    Beiträge
    1.391
    Danke
    2
    Bekam 21 mal "Danke" in 20 Postings

    Standard AW: Strcmp gibt immer das gleiche aus

    0 käme bei Übereinstimmung raus, ungleich 0 wenn die Strings nicht identisch sind. So wie Du es schreibst prüft die if-Bedingung nur ob die Rückgabe true oder false ist. Da bei dir aber immer ein Wert raus kommt ist die Rückgabe immer true, daher stimmt die Bedingung. Schreib es also so:

    Code:
    if(strcmp(ZuOdAb21, Richtig21) == 0 )
    wenn es dir um Übereinstimmung geht.

    Siehe: http://www.cplusplus.com/reference/c...string/strcmp/

    PS: ich lerne auch noch C

  3. #3
    itsbidiopen
    Gast

    Standard AW: Strcmp gibt immer das gleiche aus

    vielen dank. das problem ist aber, dass der immer 1 ausgibt egal ob ich das richtige oder das falsche eingebe.
    ich hab das mit printf("%d",Vergleich1); überprüft, nachdem ich Vergleich1 als strcmp(ZuOdAb21, Richtig21) definiert hab.

    leider ändert dein vorschlag (danke nochmal) auch nichts daran.

    PS.: wie lernst du c?? benutzt du ein tutorial oder belegst du einen kurs oder sowas??

  4. #4
    itsbidiopen
    Gast

    Standard AW: Strcmp gibt immer das gleiche aus

    hi,
    hat sich geklärt. ich hatte ein paar verständniss probleme und dadurch kleine formfehler. ich habs jetzt mithilfe von nem tutorial gelöst und das programm funktioniert jetzt.
    trotzdem danke für die hilfe.

    gruß itsbidiopen

    PS:weiß einer von euch wie man zufallszahlen generieren kann und denen dann bedingungen stellt ??

  5. #5
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Strcmp gibt immer das gleiche aus

    Mit der Funktion rand()
    Aber, da es sich beim Computer immer nur um Pseudo-Zufall handelt, wirst du noch srand() brauchen.

    Näheres findest du unter:
    http://www.cplusplus.com/reference/clibrary/cstdlib/
    Something big is coming. And there will be pirates and ninjas and unicorns...

Ähnliche Themen

  1. Frage zu strcmp
    Von johnny im Forum Forum für alle anderen Programmiersprachen
    Antworten: 4
    Letzter Beitrag: 22.06.2009, 20:58
  2. gleiche dateien finden
    Von WellWork im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 29.01.2009, 19:15
  3. div boxen auf gleiche höhe
    Von minder im Forum HTML & CSS Forum
    Antworten: 7
    Letzter Beitrag: 15.06.2008, 22:55
  4. Immer das gleiche Problem mit dem Download-Angebot
    Von Cyberphreak im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 21.11.2006, 16:27
  5. Immer das gleiche Menü ohne Frames
    Von Gettokind im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 20.05.2004, 16:50

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •