Hilfe: C++ Zahlen nach größe sortieren

mayerdm

Neuling
Thread Starter
Mitglied seit
12.02.2012
Beiträge
2
Hallo Leute, brauche dringend Hilfe. Ich wollte eine beliebige Anzahl von Zahlen nach Größe sortieren. Hier habe ich mich für 4 Zahlen entschieden. Und zwar komme ich mit dem sortieren nicht zurecht. Weiß einfach nicht was ich da falsch mache. Oder gibt es vielleicht ein anderen Vorschlag? Ich wäre echt dankbar, wann mir jemand helfen kann.



#include "stdafx.h"
#include <stdio.h>
#define N 10

void main (void)
{ //Deklaration
int i, anzahl;
float zahl[N], y;

//Zahlen eingabe
for (i=0; i<=3; i++)
{
printf ("Gib die %d.te Zahl ein " , i );
scanf ("%f", &zahl);
}

//Sortiert nach groesse (aufsteigend)
printf ("\n\nJetzt nach groesse sortiert!!! \n\n");
for (i=0; i<=3; i++)
{
if (zahl > zahl[i+1]);

//Vertauschen
y = zahl;
zahl = zahl[i+1];
zahl[i+1] = y;

printf ("Die %d.te Zahl ist jetzt %5.1f \n", i, zahl);
}
}
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Das ist kein C++, sondern C.
Dein Problem wird bei
Code:
if (zahl[i] > zahl[i+1]);
liegen. Mit Semikolon beendest du das if, du müsstest aber stattdessen einen Block mit { aufmachen, der deine y = ... usw. Anweisungen enthält.
 
Hey, Danke für die Hilfe. Hat mir alles geholfen und weiter gebracht. Hier mein fertiger code, wenn mal jemand bracht :banana: :
Code:
#include "stdafx.h"
#include <stdio.h>
#define N 10

void main (void)
{  //Deklaration
	int i, j, anzahl;
	float zahl[N], y;

	                   //Zahlen eingabe
	                   for (i=1; i<=5; i++)
	                   {
	                   printf ("Gib die %d.te Zahl ein " , i );
	                   scanf ("%f", &zahl[i]);
	                   }
	                                //Sortiert nach groesse (aufsteigend)
                                        printf ("\n\nJetzt nach groesse sortiert!!! \n\n");
					for (i=1; i<= 5 ; i++)
	    				  {
                                           for (j=1; j< 5 ; j++)
						{
						if (zahl[j] > zahl[j+1])
		                                    {
					             y = zahl[j];
						     zahl[j] = zahl[j+1];
			       			     zahl[j+1] = y;
				       	             }
		 				 }	
					   }
				j=i;

			       for (i=1; i<=5; i++)
			       printf ("Die %d.te Note ist %5.1f \n", i, zahl[i]); 
}
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh