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 Zufallgeneratorsfor (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; };