Programmanweisung wiederholen



  • Hallo,
    da ich bisher noch ganz am Anfang stehe C zu lernen, bitte möglichst einfach erklären.

    Wir haben die Aufgabe ein Programm zu erstellen das eine Tabelle auswirft. Hier soll man die Ober- & die Untergrenze festlegen.

    Soweit alles kein Problem.

    Jedoch soll falls man eine größere Unter- als Obergrenze eingibt der Text "Bitte obere Grenze eingeben" erscheinen und das so lange bis die Obergrenze höher als die Untergrenze ist. Erst dann soll das Programm weiter laufen.

    Sieht im Hauptprogramm bisher so aus:

    // Einbinden von nötigen Header-Dateien
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>

    // Prototypen der benötigten Funktionen
    void strich(int n, char c);
    void tabelleAusgeben(const int von, const int bis, const int schritt);
    int untereGrenzeEinlesen(void);
    int obereGrenzeEinlesen(int ug);

    int main() // Beginn Hauptprogramm **************************
    {
    //************************ Vereinbarungsteil **************************
    int von, bis, schritt;

    //************************ Anweisungsteil ****************************
    // Dialogeröffnung
    strich(50,'-');
    printf ("Zahltab: Berechnung von Zahlentafeln\n");
    strich(50,'-');

    //grenzenEinlesen(&von, &bis);
    von = untereGrenzeEinlesen();
    bis = obereGrenzeEinlesen(von);

    {
    if (bis <= von)
    printf ("Bitte obere Grenze eingeben\n");
    scanf ("%d",&schritt);

    }

    // Einlesen Schrittweite

    printf ("Bitte Schrittweite eingeben: ");
    scanf ("%d",&schritt);

    tabelleAusgeben(von, bis, schritt);

    printf("Servus! \n");
    system("pause");
    return(0);
    } //***************** Ende Hauptprogramm ***************************

    Daher meine Frage: Was fehlt noch damit der Benutzer solange aufgefordert wird die Obergrenze einzugeben bis sie gültig ist & erst dann die Schrittweise festgelegt werden soll? 😕



  • Wäre folgendes die richtige Lösung meines Problemes?

    do // Einlesen obere Grenze und prüfen
    {
    printf ("Bitte obere Grenze eingeben: ");
    scanf ("%d", &bis);
    if (bis <= von) printf ("Bitte >= Untergrenze !!\n");

    } while (bis <= von);

    ? Funktionieren würde es so, macht man das üblicherweise auch so?



  • Ja, allerdings sollte das bei dir wohl in der Funktion obereGrenzeEinlesen erfolgen. Sonst macht der Parameter ug ja keinen Sinn.


Anmelden zum Antworten