Höchsten Wert && Niedrigsten Wert auslesen Fehler :(



  • Danke dir erstmal.

    Wa smeinstn du mti Rückgabewert von scanf? 😕
    grüße



  • Ich hab noch ein Problem, die Min Zahl ist immer =0.
    Ist ja auch klar, da min ja automatishc mit 0 initialisiert wird.

    Nun ist meine Frage wie schaffe ich es das min mit dem ersten wert von zahl initialisert wird?

    das raff ich grad nicht... 😕



  • moses030 schrieb:

    Ich hab noch ein Problem, die Min Zahl ist immer =0.
    Ist ja auch klar, da min ja automatishc mit 0 initialisiert wird.

    Das (automatisch) gilt nur für globale und static Variablen.

    moses030 schrieb:

    Nun ist meine Frage wie schaffe ich es das min mit dem ersten wert von zahl initialisert wird?

    das raff ich grad nicht... 😕

    Du müsstest in der Schleife wissen, wann dein erster Durchgang ist.
    Eine Zählvariable wäre da ganz hilfreich.



  • Oh warte... jetzt bin ich überfragt. Wie soll ich da eine Zählvariable einfügen?

    in meiner ersten Variante, wäre es einfach gewesen einfach auf die 1 stelle im array zu zeigen und zu sagen das ist dein min.

    Doch nun muss ich der min variable sagen, übernehme bitte den Wert aus dem ersten durchgang von zahl..

    verstehen tu ich es.. aber wie zur hölle soll ich das umsetzen.. total überfragt grade..

    Danke dir Dirk für die Hilfe.

    Für euch ist das sicher total easy peasy hier.. ich bin hier nur am bücher durch welzen und lösungen finden....

    Danke nochmals an alle die helfen. 👍

    EDIT: Vllt einfach eine variable hinzufügen die die durchgänge zählt und dann min anweisen den int aus zahl[durchgang 1] verwenden.. oder?



  • moses030 schrieb:

    EDIT: Vllt einfach eine variable hinzufügen die die durchgänge zählt und dann min anweisen den int aus zahl[durchgang 1] verwenden.. oder?

    Haste doch schon: count.



  • stimmt, aber wie gebe ich der variable min die anweisung das es aus der 1. auslesung das übernimmt?

    könnte mir jemand den code dafür schreiben?
    wäre nett wenn neutral, das ich ihn anpassen muss, damit ich was lerne.

    bedanke mich

    schönen abend euch 🙂



  • #include <stdio.h>
    
    enum { OK, ERR };
    
    // Liest einen double in *d
    // Gibt OK bei Erfolg, bzw. ERR bei Misserfolg zurueck
    int get_double(double *d) {
      if (scanf("%lf", d)==1)
        return OK;
      return ERR;
    }
    
    int main(void) {
      double d;
      // Ersten einlesen und aussteigen, wenn schon Lesefehler
      if(get_double(&d)==ERR)
        return -1;
      // Minimum ist aktuell der erste(einzige) Wert.
      double min = d;
      while(get_double(&d)==OK)
        if(d<min)
          min = d;
      printf("Minimum: %lf\n", min);
    }
    


  • Oder

    scanf("%i", &zahl);
      if (count == 0) { // erster Durchgang
        min = ...
        max = 
      }
    

    bleibt aber das Problem der Fehleingabe.



  • Halli Hallo,

    darf ich fragen welches Problem der Fehleingabe du meinst?

    Danke dir 🙂

    Grüße



  • moses030 schrieb:

    darf ich fragen welches Problem der Fehleingabe du meinst?

    Z.B. alle Zeichen die nicht zu %i passen.

    Bei %i musst du übrigens aufpassen, da Zahlen mit führender Null als Oktalwerte aufgefasst werden. Und mit führendem 0x als Hexwerte.
    http://www.cplusplus.com/reference/cstdio/scanf/



  • Und was wäre da besser statt %i? 😕 😕

    EDIT:

    vllt %d?

    aufgrund

    d or u Decimal integer Any number of decimal digits (0-9), optionally preceded by a sign (+ or -).
    d is for a signed argument, and u for an unsigned.

    ??


Anmelden zum Antworten