Madnesspg Geschrieben 23. November 2008 Geschrieben 23. November 2008 (bearbeitet) Hi erstmal stelle ich mich vor bin momentan Elektrotechnikstudent und bin 23 Jahre alt und stehe schon vor meinem ersten Problem in C++ Meine Aufgabe lautet das ich max 20 Zahlen einlesen lasse soll und diese sollen über ein Array sortiert und ausgegeben werden! Und jeder sortier schritt soll nach jeder sortierung angezeigt werden z.B 9 2 5 4 6 0 Schritt 1: 0 2 5 4 6 9 Schritt 2: 0 2 4 5 6 9 Nur habe ich jetzt folgendes Problem ich schaffe es einfach nicht eine text datei einlesen zu lassen vll könnt ihr mir helfen #include <iostream> using namespace std; #include <stdlib.h> const int MAX=20; int main() { int feld[MAX], hilf; int i, j, k; fstream cin("testat.txt",ios::in); srand(0); // Zufallsgenerator vorbereiten for (i=0; i<MAX; i++) /*{ // Array besetzen und anzeigen feld[i] = rand() % 100 + 1; cout << feld[i] << " "; }*/ cout << endl; for(i=MAX-1; i>0; i--) { for (j=0; j<i; j++) { cout << "(" << j << "-" << j+1 << "): " <<endl; if (feld[j]>feld[j+1]) { // Tauschen erforderlich hilf = feld[j]; feld[j] = feld[j+1]; feld[j+1] = hilf; } cout << feld[j] << " - " << feld[j+1] << " "<<endl<<endl; } // Zeige das Array in diesem Durchlauf cout << endl << MAX-i << ". Durchlauf beendet: "; for (k=0; k<MAX; k++) { cout << feld[k] << " "<<endl; } cout << endl; } } Bearbeitet 23. November 2008 von Madnesspg Zitieren
robotto7831a Geschrieben 23. November 2008 Geschrieben 23. November 2008 Hallo, Du liest die ja auch nicht ein. Schau mal dort. Frank Zitieren
Madnesspg Geschrieben 23. November 2008 Autor Geschrieben 23. November 2008 (bearbeitet) HI ersteinmal danke fuer deine Antwort aber fuer was ist denn dann das fstream? fstream cin("testat.txt",ios::in); die ist doch zum auslesen der datei oder?? edit: so problem ist gelöst nur bringt er mir jetzt ganz andere zahlen aus nämlich: -858993460 und das bei jeder zahl wieso? Bearbeitet 23. November 2008 von Madnesspg Zitieren
robotto7831a Geschrieben 23. November 2008 Geschrieben 23. November 2008 (bearbeitet) fstream beinhaltet nur den Pointer auf die Datei bzw. die Variable cin. fstream - C++ Reference Frank Bearbeitet 23. November 2008 von robotto7831a Zitieren
Madnesspg Geschrieben 23. November 2008 Autor Geschrieben 23. November 2008 (bearbeitet) Niemand eine lösung wieso der immer diese Zahl hier nimmt? -858993460 und nicht die die er auslesen soll? das sind die zahlen die er einließt 5 66 77 8 99 1 22 65 14 87 62 2 4 12 15 17 19 28 67 20 Bearbeitet 23. November 2008 von Madnesspg Zitieren
AndiE Geschrieben 23. November 2008 Geschrieben 23. November 2008 Du mußt doch erst das feld[max] mit den Daten aus der Datei füllen. Zitieren
Madnesspg Geschrieben 23. November 2008 Autor Geschrieben 23. November 2008 Hi super ersteinmal für eure antworten jetzt funktioniert der mist auch nur ein kleines problemchen habe ich noch hier erstnochmal der code #include <iostream> #include <stdlib.h> #include <fstream> const int MAX=20; using namespace std; int main() { int feld[MAX] = {5,66,77,8,99,1,22,65,14,87,62,2,4,12,15,17,19,28,67,20}; int hilf; int i, j, k; fstream cin("testat.txt",ios::in); cout << endl; for(i=MAX-1; i>0; i--) { for (j=0; j<i; j++) { cout << "(" << j << "-" << j+1 << "): " ; if (feld[j]>feld[j+1]) { // Tauschen erforderlich hilf = feld[j]; feld[j] = feld[j+1]; feld[j+1] = hilf; } cout << feld[j] << " - " << feld[j+1] << " "<<endl; } // Zeige das Array in diesem Durchlauf cout << endl << MAX-i << ". Durchlauf beendet: "<<endl<<endl; for (k=0; k<MAX; k++) { cout << feld[k] << " "<<endl; } cout << endl; } } wenn ich das programm starte rattert er alles runter doch fängt er erst bei durchlauf 12 an das heist die ersten 12 sortierungen zeigt er mir nicht an aber die haette ich gerne dabei was muss ich noch machen damit die angezeigt werden??? grüße Maddy Zitieren
Klotzkopp Geschrieben 24. November 2008 Geschrieben 24. November 2008 wenn ich das programm starte rattert er alles runter doch fängt er erst bei durchlauf 12 an das heist die ersten 12 sortierungen zeigt er mir nicht an aber die haette ich gerne dabei was muss ich noch machen damit die angezeigt werden??? Bist du sicher, dass die Ausgabe erst beim 12. Durchlauf anfängt, oder kann es sein, dass einfach der Puffer deiner Konsole nicht groß genug ist, um die gesamte Ausgabe aufzunehmen? Leite doch die Ausgabe mal in eine Datei um. Zitieren
Madnesspg Geschrieben 24. November 2008 Autor Geschrieben 24. November 2008 jo hab ich gemacht funktioniert wunderbar danke nochmal an alle für eure super hilfe grüße Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.