erhalte bei der ausgabe des besten vereins nur sinnlose zahlenfolgen



  • wär echt nett, wenn sich das jemand anschaun könnte. Danke schon mal im voraus:)

    #include <iostream>
    using namespace std;
    
    struct verein{char *vname;int spiele;int gew;};
    void suche_besten(verein *liga,int anz,verein &bester)
    {
    	bester.gew=liga[0].gew;
    	for(int i=0;i<anz;i++)
    	{
    		if(bester.gew<liga[i].gew){
    			bester = liga[i];
    		}
    	}
    }
    int main()
    {
    	int anz;verein bester;
    	cout<<"Anzahl: "<<endl;cin>>anz;
    	verein *liga=new verein[anz];
    	cout<<"Gib Vereinsname, gesamtanzahl der spiele und die davon gewonnenen spiele ein!!"<<endl;
    	for(int i=0;i<anz;i++)
    	{
    		cin.getline(liga->vname,80);cin.ignore(80,'\0');
    		cin>>liga->spiele;
    		cin>>liga->gew;
    	}
    	cout<<"Bester Verein: "<<bester.vname<<" "<<bester.spiele<<" "<<bester.gew<<endl;
    	return 0;
    }
    

  • Administrator

    In deinem gezeigten Code wird gar nicht nach dem besten Verein gesucht, zumindest gibt es keinen entsprechenden Funktionsaufruf in der Main-Funktion. Das kommt davon, wenn man einen so unleserlichen Code produziert ... *brrr*

    Grüssli



  • Deine suche_besten-Funktion ist übrigens fehlerhaft. Betrachte den Fall, dass der erste Verein der beste ist.



  • forever21 schrieb:

    wär echt nett, wenn sich das jemand anschaun könnte....

    Habe ich gemacht.

    forever21 schrieb:

    ...Danke schon mal im voraus:)

    Gern geschehen.

    Gruß,

    Simon2.

    P.S.:
    - Wo wird Speicher für die Zeichenketten (verein::vname) reserviert?
    - Wo wir der Speicher für die vereine freigegeben? (delete[]
    => Nimm std::string.


Anmelden zum Antworten