tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
443
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Windassel Windassel ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    17
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    int main()
    {
        int wert, wert2;
       
        printf("Anfangswert: ");
        scanf("%i", &wert);
        printf("Endwert: ");
        scanf("%i", &wert2);
           
        for(int i = wert; i <= wert2; i++)
        printf("\n%i ins Quadrat ist: %i", i, i * i);
       
     
        system("PAUSE");
        return 0;
    }

    So, das ist jetzt soweit fertig. jetzt wollte ich aber das det au funktioniert, auch wenn die 1. zahl größer ist als die zweite. das hab ich jetzt so geschrieben

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    int main()
    {
        int wert, wert2;
        
        
        printf("Anfangswert: ");
        scanf("%i", &wert);
        printf("Endwert: ");
        scanf("%i", &wert2);
        
        if (wert < wert2) {    
        for(int i = wert; i <= wert2; i++)
        printf("\n%i ins Quadrat ist: %i", i, i * i);
        }
     
        else if (wert2 < wert) { 
        for(int i = wert2; i <= wert; i++)
        printf("\n%i ins Quadrat ist: %i", i, i * i);
        }
     
        system("PAUSE");
        return 0;
    }

    Aber dann wir die quadratwurzel vom endwert als 1. ausgegeben, das will ich aber nicht. der anfangswert soll ja wieder als 1. ausgegeben werden, was hab ich falsch gemacht? oO
     

  2. #2
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Hallo,

    Falsch gemacht in dem Sinn hast du gar nichts. Du musst nur die Laufrichtung der Schleife anpassen:
    Code cpp:
    1
    2
    3
    4
    
    else if (wert2 < wert) { 
        for(int i = wert; i <= wert2; i--)
        printf("\n%i ins Quadrat ist: %i", i, i * i);
        }

    Dann läufst du von der größeren zur kleineren Zahl, und die Ausgabe sollte stimmen.
     

  3. #3
    Windassel Windassel ist offline Mitglied
    Registriert seit
    Oct 2011
    Beiträge
    17
    funktioniert immernoch nicht. hab das jetzt so eingegeben. wenn die anfagszahl ist 6, und die endzahl ist 4, dann steht da nur: Drücken Sie eine beliebige Taste...
     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    So müde, Steiner
    Code cpp:
    1
    2
    3
    4
    
    else if (wert2 < wert) { 
        for(int i = wert; i >= wert2; i--)
        printf("\n%i ins Quadrat ist: %i", i, i * i);
        }

    Die Bedingung muss natürlich auch angepasst werden.

    Gruß
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?