Char Array mit mehreren Namen füllen



  • Hallo, ich habe von meiem Lehrer folgende Aufgabe bekommen:

    Gegeben der Jahresumsatz (in Mio.) von 5 Ölfirmen. Der größte Jahresumsatz und der Name der Firma sollen durch ein Programm bestimmt werden bzw. sind vorgegeben.

    BP 100
    ESSO 200
    SHELL 300
    TOTAL 400
    OIL! 500

    Vorgehen: die Werte für Firma und Umsatz werden in 2 Variablen abgelegt.

    So, nun zu meinem Problem:
    Der höchste Wert (in diesem Falle OIL!) wird berechnet. Ich bin nur leider nicht in der Lage die Namen der Firmen in einer Array-Variablen "name" vom Datentyp char oder string einzulesen. Funktioniert das irgendwie mit einem String der auf ein char array zeigt oder so? Hier mal mein Quellcode zum anschauen bzw. verbessern.

    Ich hoffe das war verständlich...

    [code]

    #include <iostream>
    #include <string>

    int main()
    {

    int umsatz[5], maximum, i;
    char string name[5]; //was muss ich an dieser Stelle tun???
    char firma;

    umsatz[0]=100;
    umsatz[1]=200;
    umsatz[2]=300;
    umsatz[3]=400;
    umsatz[4]=500;

    name[0]="BP";
    name[1]="Esso";
    name[2]="Shell";
    name[3]="Total";
    name[4]="Oil!";

    firma=0;
    firma=name[0];

    maximum=0;
    maximum=umsatz[0];

    for(i=0; i<5; i++)
    {
    if(umsatz[i]>maximum)
    {
    maximum=umsatz[i];
    firma=name[i];
    }
    }

    std::cout<<maximum;
    std::cout<<firma;

    return 0;
    }

    Wie gesagt, das Problem ist die fünf Namen der Firmen in einer Variablen unterzubringen.

    Ich bitte um eure Mithilfe. Ich beschäftige mich schon seit zwei Tagen damit. Vielen Dank

    Gruß Frosch666



  • Schau Dir mal std::vector und std::string an.

    Die Information mag Dir jetzt etwas wenig erscheinen, aber Du wirst, nach etwas spielen mit std::vector, eigene Ideen für die Lösung entwickeln 🙂



  • eigentlich ist ja schon alles richtig, lediglich die liste der firmen muss korrekt deklariert werden:

    //char string name[5]; //was muss ich an dieser Stelle tun??? 
    char *name[5];
    

    und genauso merkst du dir dann in der schleife auch kein einzelnes char, sondern einen zeiger auf das erste char des strings:

    char *firma;
    // ...
    firma=name[i];
    // ...
    std::cout<<firma;
    


  • ... allerbesten Dank. funktioniert einwandfrei!

    std::vector und std::string werde ich mir aber trotzdem gleich mal angucken!

    Gruß Frosch666


Anmelden zum Antworten