maximalwert in C ermitteln!!

LatschFOB

Grünschnabel
moinz,
Ich wollte mal wissen wie man einen Maximalwert in C ermitteln kann!
also ein Benutzer kann beliebig viele Zahlen eingeben und das programm soll aus diesen zahlen dann den maximalwert auslesen!
kann mir da jemand weiter helfen

mfg
Latsch
 
einfachster Weg:

Code:
#define ANZAHL 30
int i=0;
int zahlen[ANZAHL];
int max,max_stelle;

//...
//zahlen[] wurde mit werten gefüllt

max=zahlen[0];
max_stelle=i;

for(i=0;i<ANZAHL;i++){
   if(zahlen[i]>max){
       max=zahlen[i];
       max_stelle=i;
   }
}

printf("Maximalwert %d an der Stelle %d",max,max_stelle);

in der Art und Weise kann man halt Maximal-Werte aus einem Array herausbekommen.
Eventuell gibt es aber in anderen Bibliotheken schon max() bzw min() Funktionen.

PS: BITTE NIEMALS EIN THEMA ZWEIMAL POSTEN
 
Zuletzt bearbeitet:
nur das kernstueck:

Code:
bool bEnd=false;
int iZahl;
int iMax=INT_MIN;
while(!bEnd)
{
    // lese zahl in iZahl ein
    if(iZahl>iMax)
    {
         iMax=iZahl;
    };
};
// gebe iMax aus
 
@Thomas
Und wieso sollte man kein Semicolon nach den if und while bloecken setzen?

und das mit dem C (ANSI) habe ich wohl ueberlesen
sollte ja auch eher eine skizze sein
 
Weil das kein pascal sondern C ist ;)
Ein Semicolon nach einem {}-Block musst du nur nach einer Deklaration einer Struktur/Klasse machen, weil du dort auch gleich eine Definition daraus machen kannst, indem du eine Instanz anlegst.

Hier eine blosse Deklaration:
Code:
struct test{
   int a;
   int b;
};
oder mit einer Definition
Code:
struct test{
   int a;
   int b;
}teststructure;

Ansonsten macht dein Compiler beim anfügen eines Semicolons noch einen Extra-Schritt weil er "denkt" dass vor dem Semicolon noch ein Extra-Befehl kommt.
Das würde auch funktionieren, aber in einem unsauberen Quellcode resultieren:
Code:
;;;;;
;
;a=1; ; ; ;
;
 
Da der C und C++ Standard die Schreibweise nicht verbieten,ist es auch kein Fehler.
Ausserdem finde ich erhoeht so ein Semicolon die Lesbarkeit des Programms.
Und der Compiler ist nicht dumm, der filtert diese leere Anweisung raus und erzeugt kein Code dafuer. Und wenn man das von Compilezeitseite betrachtet, dann ist dies vernachlaessigbar.

Und das Beispiel ist redlich schlecht, denn wo bitte ist da wenigstens eine if oder while Anweisung zu finden?

Und solange wie hier auf dem Board keine Regeln ueber Stil- und Code-Formatierung aufgestellt sind werde ich meine Beispiele posten wie ich es fuer richtig halte.
 
Hier hast du nochmal den kompletten Code:

Code:
#include <stdio.h>

int main(void)
{
	int iMax = 0;
	int i = 0;
	int arrZahlen[5];
	int iStelle = 0;
	int anzZahlen = 5; /*Anzahl der Zahlen in dem Array*/
	
	arrZahlen[0] = 10;	
	arrZahlen[1] = 5;
	arrZahlen[2] = 17;
	arrZahlen[3] = 13;
	arrZahlen[4] = 2;
	arrZahlen[5] = 9;
	
	iMax = arrZahlen[0];
	
	for (i = 0; i <= anzZahlen; i++)
	{
		if(arrZahlen[i] > iMax)
		{
			iMax = arrZahlen[i];
			iStelle = i;
		}	
	}
	
	printf("Die groesste Zahl ist %i und liegt an der %i Stelle", iMax, iStelle);
	
	return 0;
}
 
Original geschrieben von Maximka
Und solange wie hier auf dem Board keine Regeln ueber Stil- und Code-Formatierung aufgestellt sind werde ich meine Beispiele posten wie ich es fuer richtig halte.

Wer fühlt sich denn da angegriffen?
Schreib doch Deinen Code so wie du das willst.
Ich jedoch mache die User darauf aufmerksam was nach welchen Konventionen wie geschrieben wird.
Dass ein zusätzliches Semicolon die Lesbarkeit erhöht halte ich für totalen Unsinn, da für das Ende eines Blocks nun mal die geschweifte Klammer da ist. Nur weil das in Pascal so ist, ist das in C/C++ noch lange nicht so!

Wenn Du die Lesbarkeit deiner Quellcodes verbessern willst dann benutze die Ungarische Notation und/oder Kommentare.
Kannst mir ja mal per PM ein C-Projekt nennen, bei dem solch tolle Formatierung benutzt wird.
ENDE DER DISKUSSION (hier gehts um MAX-Berechnung)
 

Neue Beiträge

Zurück