von zweistelliger Zahl hintere ziffer abfragen



  • Wie kann ich in C++ von einer zweistelligen Zahl (z.B. 23) die hintere abfragen (3) ?

    Danke, Anfänger01



  • ...
    int a=23;
    if (a%10==3)
    cout<<"die zahl endet mit 3"<<endl;
    ...



  • Dann müsste doch folgendes funktionieren, aber er gibt mir immer nur - nach der letzten Ziffer aus. Ich glaube ich habe irgendwas mit den if's falsch gemacht.

    #include <iostream.h>
    #include <conio.h>
    
    void main (void)
    {
     int grade;
     char letter; //Buchstabe
     char sign;   //Zeichen (+,-oder nichts)
    
     printf("Write down your numeric grade : \n");
     scanf("%i",&grade);
     if (grade <= 60)
     {
     letter = 'F'; //Bei F kommt kein +,- dazu
     }
     if (grade >= 61 && grade <= 70)
     {
     letter = 'D';
     }
     if (grade >= 71 && grade <= 80)
     {
     letter = 'C';
     }
     if (grade >= 81 && grade <= 90)
     {
     letter = 'B';
     }
     if (grade >= 91 && grade <= 100)
     {
     letter = 'A';
     }
      if (grade % 10 == 4||5||6)
      {
       sign = ' ';
      }
      if (grade % 10 == 7||8||0||9)
      {
       sign = '+';
      }
      if (grade % 10 == 3||2||1)
      {
       sign = '-';       //Es wird immer - ausgegeben.
      }
     printf("Your letter is %c%c !",letter,sign);
     getch();
    }
    

    Bei der Zahl 81 müsste das programm B- ausgeben, bei 94 A und bei 68 D+.
    funzt aber ned. warum?

    Danke Anfänger01



  • //Edit hab scheiße geschrieben 😃



  • if (grade % 10 == 4||5||6)
    

    4 ist wahr, somit wird 5 und 6 nicht mehr ausgewertet.
    bleibt

    if (grade % 10 == true)
    

    also wenn die letzte Ziffer 1 ist.

    Du meintest:

    if (grade % 10 == 4||grade % 10 == 5||grade % 10 == 6)
    


  • if (grade % 10 == 4||5||6)
    

    weisst du was das macht? Ich geb dir einen Tipp, es macht etwas anderes als

    if (grade % 10 == 4 || grade % 10 == 5 || grade % 10 == 6)
    


  • ok, jetzt geht es danke für den Tip! 👍


Anmelden zum Antworten