Kleinster Wert eines Arrays

Dentho

Grünschnabel
Hallo, ich würde gerne den kleinsten Wert in einem Array ausgeben, aber leider zeigt mir mein Programm nur den größten Wert an und für den kleinsten gar nichts.
Komme da leider nicht weiter und wäre für Hilfe sehr dankbar :/

Edit:
Wenn das Array komplett mit Werten gefüllt ist Funktioniert es, aber sobalt ein Wert fehlt, also = 0 ist klappt es nicht mehr. : /

Hier der Code
Code:
void statistik_anzeigen(const S_Mitarbeiter Mitarbeiter_ID[mza]){
	//Variablen
	//
	float fMax = Mitarbeiter_ID[0].fBruttoeinkommen; 
	float fMin = Mitarbeiter_ID[0].fBruttoeinkommen;
	int Max_ID = 0;
	int	Min_ID = 0;

	for (int i=0; i<mza; i++)
	{
		if (Mitarbeiter_ID[i].fBruttoeinkommen > fMax)
		{
			fMax = Mitarbeiter_ID[i].fBruttoeinkommen;
			Max_ID = i;
		}
	
		if  (Mitarbeiter_ID[i].fBruttoeinkommen < fMin)
		{
			fMin = Mitarbeiter_ID[i].fBruttoeinkommen;
			Min_ID = i;
		}
	}		

	cout << "Das groeste Bruttoeinkommen bekommt: " << Mitarbeiter_ID[Max_ID].chName << endl;
	cout << endl;
	cout << "Das kleinste Bruttoeinkommen bekommt: " << Mitarbeiter_ID[Min_ID].chName << endl;

	_getch();
}
 
Zuletzt bearbeitet:
Guten Morgen,
ein kleiner Einwurf am Rande,
wenn du zuerst die IDs auf 0 setzt und fmin und fmax zuweist, musst du diese in der Schleife nicht mehr vergleichen. Wenn ich mich nicht irre oder du noch andere Dinge mit den Werten anstellst, kannst du die Schleife bei 1 starten.

Grüße ;)
 
Wer sagt denn, dass der erste Arrayeintrag immer die ID 0 hat?

Edit: Sorry, war Unsinn :(
 
Zuletzt bearbeitet:
Huhu,
die Schleifendefinition sagt dies aus, in Verbindung mit der Vereinbarung der MAX_ID bzw. MIN_ID.

Code:
Max_ID = i;


...
Edit:
Wenn das Array komplett mit Werten gefüllt ist Funktioniert es, aber sobalt ein Wert fehlt, also = 0 ist klappt es nicht mehr. : /
...

-> Dann "klammer" doch deine Nichtinitialisierung einfach aus. Ein Bruttoeinkommen=0 deutet doch auf einen uninitialisierten Mitarbeiter hin und den filterst du bei deiner Min-/Maxberechnung einfach aus.

Code:
for () { 
if (abs(Mitarbeiter_ID[i].fBruttoeinkommen) < 0.1) i++;
...
}

Grüße ;)
 
Zuletzt bearbeitet:
Zurück