Quadratzahlen

  • Themenstarter Themenstarter ByeBye 267686
  • Beginndatum Beginndatum
B

ByeBye 267686

Code:
#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:
#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
 
Hallo,

Falsch gemacht in dem Sinn hast du gar nichts. Du musst nur die Laufrichtung der Schleife anpassen:
C++:
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.
 
Zuletzt bearbeitet von einem Moderator:
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...
 
So müde, Steiner :D
C++:
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ß
 
Zurück