Array mit Zufallswerten aber dann sortieren?



  • Hi!

    Habe ein Problem... Wieder mal 😃
    Wir haben ein Programm geschrieben (Konsolenprogramm) was Zufallszahlen ausgibt. Aber wie kann ich die jetzt einfach sortieren lassen? Hier ist das Prog 🙂

    //---------------------------------------------------------------------------

    //Name------: RhymeKamikaze
    //Datum-----: 2005-11-16(3)
    //Programm--: FOR-Schleifen & Arrays

    //---------------------------------------------------------------------------

    /* Programm FOR Schleifen und Arrays */
    /* array1.cpp */

    #include <iostream.h>
    #include <stdio.h>
    #include <conio.h>
    // ********** Variablendeklaration *****************
    int zahl,bla,lol=0;
    int datenfeld[9]; // Anlegen eines eindimensionalen Arrays (Datenstruktur,
    // in denen sich mehrere Daten gleichen Typs abspeichern
    // lassen) mit zehn Speicherplaetzen (C++ beginnt mit
    // Speicherplatz 0)

    // ********** HAUPTPROGRAMM ************************

    void main()
    {
    int n;
    randomize(); // Starten des Zufallgenerators

    for (int n=0; n<10; n++) /* /
    {
    zahl = random (100); /
    /
    datenfeld[n] = zahl; /
    /
    cout << "Zahl: " <<zahl<<endl;
    }
    for (n=0;n<10;n++) /
    */
    {
    gotoxy(20,n+1);
    cout<< "Datenfeld "<< n << " : " <<datenfeld[n]<<endl;
    }
    for (n=0;n<10;n++)
    {
    lol=lol+datenfeld[n];
    }
    bla=lol/10;
    cout << "Durchschnittswert: "<< bla;
    getchar();
    return;
    }

    //---------------------------------------------------------------------------



  • Ich lese ganz ungern unformattierten code. Aber das ist mir aufgefallen

    int datenfeld[9]; // Anlegen eines eindimensionalen Arrays (Datenstruktur,
    // in denen sich mehrere Daten gleichen Typs abspeichern
    // lassen) mit zehn Speicherplaetzen (C++ beginnt mit
    // Speicherplatz 0)
    

    Obwohl bei 0 angefangen wird zu zählen sind es trotzdem nur 9.
    Kurt



  • Hallo, erstmal dein Programm wie es viel besser und standardkonformer ist:

    #include <iostream>
    #include <cstdlib>
    #include <ctime>
    using namespace std;
    
    int main() // es heißt int main()
    {
    	int datenfeld[10]; // hier passen 10 rein!
    
    	srand(time(0)); // anstatt randomize()
    
    	for (int n=0; n<10; n++) {
    		int zahl = rand() % 100; // Variablen immer so lokal wie möglich!
    		datenfeld[n] = zahl;
    		cout << "Zahl: " << zahl << endl;
    	}
    
    	for (int n=0; n<10; n++) {
    		// gotoxy muss doch net wirklich sein...
    		cout << "Datenfeld " << n << " : " <<datenfeld[n] << endl;
    	}
    
    	int summe = 0; // aussagekräftige bezeichner wählen!
    	for (int n=0; n<10; n++)
    	{
    		summe += datenfeld[n];
    	}
    	cout << "Durchschnittswert: " << summe / 10;
    
    	cin.ignore(cin.rdbuf()->in_avail()); // das musst du noch nicht verstehen, ist sozusagen die standard-variante für getch()
    	cin.get();
    
    	return 0; // 0 bedeutet Proramm erfolgreich abegschlossen
    }
    

    Falls eine Warnung kommt von einer Typkonvertierung kannst du das ignorieren oder einfach einen Cast einbauen.

    Für das Sortieren: Such mal nach Bubblesort.

    Gruß



  • Danke erstmal 🙂

    Hmm hab bubblesort gesucht aber bin nicht wirklich drauf gekommen... wie kann ich das denn zum sortieren benutzen oder einbauen in diesem Proggie? 🙂



  • RhymeKamikaze schrieb:

    Danke erstmal 🙂

    Hmm hab bubblesort gesucht aber bin nicht wirklich drauf gekommen... wie kann ich das denn zum sortieren benutzen oder einbauen in diesem Proggie? 🙂

    Achja du hast nicht gesucht? Glaub ich dir nicht: Google: bubblesort c++ Gut der erste Hit mit der Page von Volkhard ist down, aber sofort beim zweiten findest du eine gute Erklärung, Pseudocode und eine einfache Implementierung in C++. 😡

    Gruß



  • und steff3 gab dir den CODE

    #include "StdAfx.h"
    
    template<class T>	
    
    class CBubble_Sort
    {
    public:
    
    	//CBubble_Sort();
    	CBubble_Sort(vector<T> v)
    	{		
    		m_vector = v;
    	};
    
    	~CBubble_Sort(void){};
    
    	vector<T> sortieren(void)
    	{
    		bool bbreak = true;
    
    		for(unsigned int j = 0; j < m_vector.size(); j++)
    		{
    			for(unsigned int i = 0; i < m_vector.size()-1; i++)
    			{
    				if(m_vector.at(i) > m_vector.at(i+1))
    				{
    					T temp;
    					temp = m_vector.at(i);
    					m_vector.at(i) = m_vector.at(i+1);
    					m_vector.at(i+1) = temp;
    
    					bbreak = false;
    				}
    			}
    			if(bbreak == true)
    			{
    				break;
    			}
    		}
    		return m_vector;
    	}
    private:
    
    	vector<T> m_vector;
    
    };
    

Anmelden zum Antworten