.j



  • Stimmt das alles jetzt so? Weil dann würde ich das so abtippen! 🙂



  • Nein:

    if ( laenge < 107 ) 
    {
      if ( laenge >= 105) 
        printf( "S" ); 
      else if ( laenge > 108 ) 
        printf( "L" ); 
    }
    else 
      printf( "M" );
    

    Überleg doch mal, was für einen Wert laenge haben muß, damit du zur Ausgabe "L" kommen kannst.



  • Hmmm... Die erste Bedingung muss gelten, also heißt das, dass da nur 108, 109 und 110 in Frage kommt. Die zweite Bedingung muss fehlschlagen, also fallen dann 109 und 110 weg. Also 108!
    Oder? :S



  • Juli84 schrieb:

    Hmmm... Die erste Bedingung muss gelten, also heißt das, dass da nur 108, 109 und 110 in Frage kommt.

    Ist dir klar, was das < bedeutet? (auf Deutsch: "kleiner als")

    (außerdem hast du insgesamt drei if-Anweisungen, denen du auf dem Weg begegnest)



  • 105 und 106...



  • if ( laenge < 107 ) // laenge ist kleiner als 107
    {
    if ( laenge >= 105) // laenge ist größer oder gleich 105
    printf( "S" );
    else if ( laenge > 108 ) // laenge ist größer als 108
    printf( "L" );
    }
    else // laenge ist größer als 107
    printf( "M" );

    Für "S": laenge ist kleiner als 107 UND laenge ist größer oder gleich 105
    für "L": laenge ist kleiner als 107 UND laenge ist größer als 108
    für "M": laenge ist größer als 107

    Also? Siehst du die Problematik?



  • und wie geht es damit weiter?

    edit @jkl: Das Gegenteil von x<n ist nicht x>n, sondern x>=n 😉



  • Nach dem Eintrag von jkljkl müsste das ja jetzt so sein:

    105 S ja

    106 S ja

    107 M ja

    108 L nein, da ein M rauskommen müsste

    109 L ja

    110 L ja

    wobei ich mir bei 107 nicht sicher bin. da ja einmal größer und einmal kleiner als 107 angegeben wird, aber nicht gleich 107?



  • Du kannst den Code ganz einfach sich selbst testen lassen:

    #include <stdio.h>
    
    int main()
    {
    	int i;
    
    	for (i = 90; i <= 120; ++i)
    	{
    		int laenge = i;
    
    		printf("laenge = %d => ", laenge);
    
    		if ( laenge < 107 ) // laenge ist kleiner als 107
    		{
    			if ( laenge >= 105) // laenge ist größer oder gleich 105
    				printf( "S" );
    			else if ( laenge > 108 ) // laenge ist größer als 108
    				printf( "L" );
    		}
    		else // laenge ist größer oder gleich 107
    			printf( "M" ); 
    
    		printf("\n");
    	}
    
    	return 0;
    }
    

    Das liefert dir für 90 bis 120 entweder S, L, M oder eben nichts:

    laenge = 90 =>
    laenge = 91 =>
    laenge = 92 =>
    laenge = 93 =>
    laenge = 94 =>
    laenge = 95 =>
    laenge = 96 =>
    laenge = 97 =>
    laenge = 98 =>
    laenge = 99 =>
    laenge = 100 =>
    laenge = 101 =>
    laenge = 102 =>
    laenge = 103 =>
    laenge = 104 =>
    laenge = 105 => S
    laenge = 106 => S
    laenge = 107 => M
    laenge = 108 => M
    laenge = 109 => M
    laenge = 110 => M
    laenge = 111 => M
    laenge = 112 => M
    laenge = 113 => M
    laenge = 114 => M
    laenge = 115 => M
    laenge = 116 => M
    laenge = 117 => M
    laenge = 118 => M
    laenge = 119 => M
    laenge = 120 => M



  • Ist denn 109 kleiner als 107?



  • hmmm äh
    sry war gerade mit meinen gedanken wo anders 😃

    für 105 und 106 kommt jeweils s raus
    und für 107 bis 110 jeweils ein m
    also sind 109 und 110 falsch -.-



  • ist es nun richtig?



  • Ja, jetzt mußt du das nur noch in einer Form präsentieren, die deinem Professor zusagt.



  • es wird ja eingesammelt. also kann ich es im prinzip doch so aufschreiben, wie du es mir bei kaskade 1 aufgeschrieben hattest... ich denke mal, unser übungsgruppenleiter bewertet das nicht ganz so streng, oder?! 😮



  • Ich denke schon

    Juli84 schrieb:

    ich denke mal, unser übungsgruppenleiter bewertet das nicht ganz so streng, oder?! 😮

    Ich kenne den Herrn leider nicht, also kann ich das nicht beurteilen.



  • haha, ja war blöd von mir formuliert sry... aber danke auf jeden fall für deine hilfe und deine geduld!!!


Anmelden zum Antworten