Strukturarray



  • #include <iostream.h>
    #include <conio.h>
    #include <algorithm>
    using namespace std;
    
    int main ()
    {	
    	struct ProDat 
    	{ 
    		int LosNr[40];
    		int Laenge[40]; 
    		char Position[40]; 
    		int Profil[40], LTKW[40]; 
    	}ProQ, ProZ;
    
    	int LosNr[40]={52347};
    	int Laenge[40]={1180,1180,920,920};
    	char Position[40]={'L','R','O','U'};
    	int Profil[40]={765};
    	int LTKW[40]={32};
    
    	int i;
    	for(i=0;i<=39;i++)
    	{
    		LosNr[i]=0;
    		if(i<=3)
    		{
    			LosNr[i]=52347;
    		}
    		Laenge[i]=0;
    		if(i<=1)
    		{
    			Laenge[i]=1180;
    		}
    		if(i<=3)
    		{
    			Laenge[i]=920;
    		}
    		Profil[i]=0;
    		if(i<=3)
    		{
    			Profil[i]=765;
    		}
    		LTKW[i]=0;
    		if(i<=3)
    		{
    			LTKW[i]=32;
    		}
    	}
    	for(i=4;i<=39;i++)
    	{
    		Position[i]=0;
    	}
    	for(i=0;i<=3;i++)
    	{
    		ProZ.Position[i]=tolower(ProZ.Position[i]);
    	}
    	for(i=0;i<=3;i++)
    	{
    		cout<<ProQ.LosNr[i]<<","<<ProQ.Laenge[i]<<","<<ProQ.Position[i]<<","<<ProQ.Profil[i]<<","<< ProQ.LTKW[i]<<";"<<endl;
    	}
             cout<<endl;
    	for(i=0;i<=3;i++)
    	{
    		cout<<ProZ.LosNr[i]<<"-"<<ProZ.Laenge[i]<<"-"<<ProZ.Position[i]<<"-"<<ProZ.Profil[i]<<"-"<< ProZ.LTKW[i]<<"+"<<endl;
    	}
    return 0;
    }
    

    also das is soweit mein Programm nur leider gibts net die zwei tabellen aus die so aussehen sollen^^:

    52347,1180,L,765,32;
    52347,1180,R,765,32;
    52347,920,O,765,32;
    52347,920,U,765,32;

    52347-1180-l-765-32+
    52347-1180-r-765-32+
    52347-920-o-765-32+
    52347-920-u-765-32+

    aber ich bekomm nur eine Tabelle die so aussieht:

    -858993460,-858993460,|[,-858993460,-858993460;
    -858993460,-858993460,|[,-858993460,-858993460;
    -858993460,-858993460,|[,-858993460,-858993460;
    -858993460,-858993460,|[,-858993460,-858993460;
    -858993460--858993460-|[--858993460--858993460+
    -858993460--858993460-|[--858993460--858993460+
    -858993460--858993460-|[--858993460--858993460+
    -858993460--858993460-|[--858993460--858993460+

    kann mir da wer helfen wenn noch wer durchblickt xD?



  • Du weist den Membern von ProQ und ProZ nie etwas zu. Wo sollen die Werte denn herkommen?

    Wäre es nicht schlauer, eine Struktur mit jeweils einem Member, und davon dann ein Array von 40 Stück anzulegen?



  • laut meinem buch weis ich da ich ProQ und ProZ hinter die die klammer schreib die gleiche struktur zu wie die struct festgelegt is also
    ProQ besteht aus

    int LosNr[40];
    int Laenge[40]; 
    char Position[40]; 
    int Profil[40];
    int LTKW[40];
    

    genau wie ProZ

    int LosNr[40];
    int Laenge[40]; 
    char Position[40]; 
    int Profil[40];
    int LTKW[40];
    


  • Das mag ja sein, aber du schreibst praktisch nur in die lokalen Variablen LosNr, Laenge, Position, Profil und LTKW (Zeile 18 bis 22). Und die haben mit ProQ und ProZ nichts zu tun.



  • ja aba von zeile 10-16 deklarier ich doch struct mit den variablen un weis dann proq un proz dieselben variablen der struct anweisung zu oda versteh ich dat wat falsch? oda gibts da noch ne leichtere lösung als meine ^^?



  • dein beispiel oben mit dem struct un dann 40 arrays davon versteh ich net so ganz kannste da en beispiel machen?? plz 🙂



  • Geht's auch ohne "aba", "oda", "un", "dat" und "wat"?

    Du legst zwei Objekte der Struktur an, ProQ und ProZ. Dann legst du noch einen dritten Satz Variablen an, die genauso heißen, nur ohne umschließende Struktur, und mit denen arbeitest du dann hinterher hauptsächlich.

    Wirf doch die lokalen Variablen raus.



  • hey
    also wenn ich in meinem Programm die struct Anweisung über die main funktion setze dann sagt mir das Programm das die Variablen nicht vereinbart sind wenn ich diese dann in meinem Programm später verwende. Wenn ich die Variablen später im Programm nochmal deklariere dann kann ich zwar die Variablen benutzen aber wenn ich dann eine Variable mit dem deklarierten struct vereinbare funktioniert diese variable wiederrum nicht... das is alles ein bisschen verwirrend deswegen geb ich hier noch ein Beispiel:

    struct ProDat								//Laut meinem Buch muss die struct Anweisung über der main Funktion deklariert
    {											//werden muss
    	int LosNr[40];
    	int Laenge[40]; 
    	char Position[40]; 
    	int Profil[40];
    	int LTKW[40]; 
    };
    
    int main ()
    {	
    
    	ProDat ProQ;							//Hier versuch ich ProQ zu vereinbaren damit ProQ die Struktur von ProDat bekommt
    											//Aber das Programm sagt mir das ProQ nicht deklariert ist
    
    	int LosNr[40]={52347};					//hier deklariere ich nochmals die oben in der struct Anweiung angegebenen Variablen
    	int Laenge[40]={1180,1180,920,920};		//weil das Programm sonst später die Variablen als nicht deklariert ansieht
    	char Position[40]={'L','R','O','U'};
    	int Profil[40]={765};
    	int LTKW[40]={32};
    


  • Ist denn das so schwer zu verstehen? Du hast einmal die Variable ProQ, die die Elemente LosNr etc enthält und einmal die lokalen Variablen LosNr etc - die haben absolut nichts miteinander zu tun.

    Und um an die Member deines Struct's ranzukommen, mußt du dessen Namen vor die Variable schreiben:

    ProDat ProQ;
    ProQ.LosNr[0]=52347;
    

    Aber vielleicht ist es sinnvoller, statt einem Struct voller Arrays lieber ein Array voller Structs zu verwenden:

    struct ProDat
    {
        int LosNr;
        int Laenge; 
        char Position; 
        int Profil;
        int LTKW; 
    };
    
    int main()
    {
      ProDat ProQ[40] =
      {
        {52347,1180,'L',765,32},
        {52348,1180,'R',765,32},
        ...
      };
    
      ...
      for(int i=0;i<40;++i)
        cout<<ProQ[i].LosNr<<'-'<<...;
    }
    


  • oki danke hab es jetzt^^ naja bin noch nicht so lange am programmieren deswegen kappier ich manches nicht so schnell ...


Anmelden zum Antworten