array an funktion übergeben -> struct ausgabe



  • hi zusammen!

    habe ein wahrscheinlich kleines, für mich aber sehr großes problem: mein programm analysiert (im nachhinein) einen aktienkurs, und ermittelt, wann der beste einkaufs- und verkauftstag, also mit dem meisten profit, gewesen wäre

    möchte in meiner main-funktion zum einen das array preisBsp zum anderen die anzahl der "boersentage" übergeben. Die funktion soll dann das optimale tripel (selbst definierter datentyp) ausgeben. leider hakt das bei mir.

    der c++builderx sagt immer ""main.cpp": E2094 'operator<<' not implemented in type 'ostream' for arguments of type 'Tripel' in function main() at line 30"

    wäre für jede hilfe sehr dankbar!!!

    mfg,
    chris

    #include <iostream.h>
    typedef struct {
      int ekTagOptimal;
      int vkTagOptimal;
      float profit;
    } Tripel;
    Tripel aktienmarkt_analysieren(float preis[], int anzahlTage) {
      int ekTag, vkTag;
      Tripel res = {-1,-1,0};
      for (ekTag = 0; ekTag < anzahlTage; ekTag++)
        for (vkTag = ekTag; vkTag < anzahlTage; vkTag++)
          if (res.profit <= preis[vkTag] - preis[ekTag]) {
            res.profit = preis[vkTag] - preis[ekTag];
            res.ekTagOptimal = ekTag + 1;
            res.vkTagOptimal = vkTag + 1;
          }
      return res;
    }
    void main()
    {
       float preisBsp[]={10.0,9.9,10.4,10.8,10.6,10.2,9.6,9.5,9.7,10.2};
       int anzTage=10;
       cout<<"Optimales Tripel: "<<aktienmarkt_analysieren(preisBsp, anzTage)<<endl
    };
    


  • verwende mal iostream und std:: und nicht iostream.h

    Du brauchst noch einen op<< für Deine Struktur:

    typedef struct { 
    int ekTagOptimal; 
    int vkTagOptimal; 
    float profit; 
    } Tripel; 
    
    std::ostream operator<<(ostream & out,const Tripel & trip)
    {
      // Und hier die einzelnen Elemente ausgeben wie Du willst
      out<<trip.ekTagOptimal<<trip.vkTagOptimal;
      out<<trip.profit;
       return out;
    }
    

    Der Compiler weiß doch garnicht wie er Deine Sturktur ausgeben soll. Musst Du ihm schon beibrigen 🙂


Anmelden zum Antworten