Sortierung

Bismark

Erfahrenes Mitglied
Hi,
Ich hab einen Programm geschrieben, beidem man fünf zahlen beliebiger Reihenfolge eingibt, dass das Programm aufsteigent sortieren soll.

Code:
#include <conio.h>
#include <iostream>

using namespace std;

int main()
{
bool merker;
int sort[5], tau;
char frage;
const int anz = 5;
merker = 0;

do
{
	for (int zae=0; zae<anz; zae++)
	{ 
	cout<<"Geben Sie die Zahl ein: ";
	cin>>sort[zae];
	}


	do
	{
	merker = 0;
		for (int x = 0; x<anz;x++)
		{
		if (sort[x]>sort[x+1])
			{
			tau = sort[x];
			sort[x] = sort[x+1];
			sort[x+1] = tau;
			merker ++;
			}
		}
	}
	while (merker != 0);


	system ("cls");
	cout<<"Die Sortierten Zahlen: "<<endl<<endl;
	for (int y=0; y<5; y++)
	{
	cout<<sort[y]<<endl;
	}


cout<<"Soll das Programm wiederholt werden? -j,J/n,N"<<endl;
cin>>frage;
}
while (frage == 'j'||frage == 'J'||frage != 'n'||frage != 'N');
getch ();
return 0;
}

Das Problem ist, dass die erste Zahl im negativem bereich ist (Bsp.: - 858993460) und die höchste bzw. letzte Zahl in der Liste nicht ausgegeben wird und bei der frage ob das Programm wiederholt werden soll wenn man n oder N für nein drückt wiederholt es trotzdem.


Ich bitte um Hilfe.
 
Hi,
also bei mir werden alle Zahlen sortiert ausgegeben, auch negative sind an der richtigen Position.
Deine Schleife wird immer wiederholt weil wenn du ein n eingibst frage != N
true ergibt und umgekehrt. Du solltest beide Bedingungen raus machen.
Dann kommt man nur mit J oder j weiter udn sonst bricht es ab.

Benny
 
Als ich es versucht hatte hatte ich gar keine negative Zahl und trotzdem kam eine negative zahl heraus.
Aber ich glaube es hängt auch vom Editor bzw. Compiler ab ob es funktioniert, weil es bei Visual Studio nicht ging.

Trotzdem Danke. :)
 
Zurück