#include <stdio.h>

/** 
 * Funkce, ktera bere dva parametry:
 * @param float[] array - pole floatů (normálně bychom použili double s větší přesností)
 * @param size_t count - počet prvků pole
 * @return float - vrací maximum
 */
int getMax ( float * array, size_t count ) {
	int i, j;

	/* existuje cislo, a bude to jedno z tech co jsou v poli, proto je projdeme vsechny */
	for ( i = 0; i < count; i++ ) {
		/* na zacatku o cisle predpokladejme, že je maximalni */
		char isMax = 1;
		
		for ( j = 0; j < count; j++ ) {
			/* pokud najdeme cislo, které je vetsi, pak nase cislo neni maximalni a my nemusime prochazet dalsi */
			if ( array[ i ] < array[ j ] ) {
				isMax = 0;
				break;
			}
		}
	
		/* pokud jsem prosel vsechna cisla a zadne nebylo vetsi, pak jsme nasli maximum */
		if ( isMax ) {
			return array[ i ];
		}
	}
}

int main ( void )
{
	float pole [] = { 6, 2, 10, 8, 23, 4 };
	/* Definice float pole [] rika, ze definuji pole (hranate zavorky rikaji je to pole) float */
	/* Pole muzu definovat s poctem prvku ci bez, ale pak musim hned priradit do nej hodnoty. */
	/* Takto definovane pole se neda zvetsovat */
	
	/* Zavolam funkci, ktere predam pole a jeho velikost. */
	/* sizeof(pole) udava pocet bytu potrebnych pro promennou pole = pocet prvku * velikost float */
	/* sizeof(float) udava pocet bytu floatu => podil udava pocet prvku */
	int max = getMax( pole, sizeof(pole) / sizeof(float) );
	printf( "Maximalni cislo je %d.\n", max );
	
	return 0; /* Return 0 znaci, ze program skoncil uspesne. */
}