Max und Min. Wert mit Array auslesen



  • Hallo zusammen, soll ein C Programm schrieben, welches beliebig viele Zahlen von der Tastatur einliest und dann den größten bzw. kleinsten Wert ausgibt. Das Programm soll dann aufhören Werte einzulesen, bis der nutzer ein
    'q' anstatt einer Zahl eingibt.

    Bis jetzt habe ich folgenden Code geschrieben:

    #include<stdio.h>
    int main(){
    int a[50],i,max,min;

    for(i=0;i!='q';i++){ ................ //Abbruchsbedingung i='q'
    scanf("%d",&a[i]);}

    max=a[0]; ................ // ich initialisiere max mit dem ersten Feld
    for(i=1;i!='q';i++){

    if(max<a[i]) ................ //a[0] und a[i] wird verglichen, wenn a[i] größer ist wird der Wert von a[i] für max übernommen.
    max=a[i];
    }

    min=a[0]; ................ // min auf erste feld
    for(i=1;i!='q';i++){

    if(min>a[i])
    min=a[i];
    }
    printf("Kleinste Zahl: %d",min);
    printf("Groesste Zahl: %d",max);

    return 0;
    }

    Das Programm bricht zwar bei "q" ab, jedoch stimmen dann die Werte nicht mehr.
    Hab ich irgendwo einen Denkfehler oder einen komplett falschen Ansatz?

    Bin für jede Hilfe dankbar.

    LG


  • Mod

    Sieht so aus, als hättest du auf gut Glück mehrere Programme aus dem Internet miteinander vermischt und gehofft, es würde funktionieren.

    (edit: Hier stand vorher noch etwas darüber, dass dein Programmablauf chaotisch wäre. Bei genauem Hinsehen ist dies nicht der Fall, es sieht aber so aus, weil du deinen Code nicht formatiert hast. Siehe: Wie man seinen Beitrag lesbar formatiert. Wenn ein Leser deine Beiträge erst mühsam entziffern muss, dann kostet das Hilfsbereitschaft.)

    Deine Leseschleife ist direkt schon einmal falsch. Was passiert denn wohl, wenn scanf eine Zahl lesen soll, aber ein 'q' trifft? Versuch als Ansatz erst einmal beliebig viele (nicht maximal 50!) Zahlen einzulesen und nichts mit ihnen zu machen. Danach kann man weitersehen, wie man aus diesen Zahlen das Minimum oder Maximum erhält, falls du dabei nicht schon alleine darauf kommst, wie es richtig geht. Tipp: Ein Array wirst du nirgendwo benötigen.


Anmelden zum Antworten