#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. */
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovKiogCiAqIEZ1bmtjZSwga3RlcmEgYmVyZSBkdmEgcGFyYW1ldHJ5OgogKiBAcGFyYW0gZmxvYXRbXSBhcnJheSAtIHBvbGUgZmxvYXTFryAobm9ybcOhbG7EmyBieWNob20gcG91xb5pbGkgZG91YmxlIHMgdsSbdMWhw60gcMWZZXNub3N0w60pCiAqIEBwYXJhbSBzaXplX3QgY291bnQgLSBwb8SNZXQgcHJ2a8WvIHBvbGUKICogQHJldHVybiBmbG9hdCAtIHZyYWPDrSBtYXhpbXVtCiAqLwppbnQgZ2V0TWF4ICggZmxvYXQgKiBhcnJheSwgc2l6ZV90IGNvdW50ICkgewoJaW50IGksIGo7CgoJLyogZXhpc3R1amUgY2lzbG8sIGEgYnVkZSB0byBqZWRubyB6IHRlY2ggY28ganNvdSB2IHBvbGksIHByb3RvIGplIHByb2pkZW1lIHZzZWNobnkgKi8KCWZvciAoIGkgPSAwOyBpIDwgY291bnQ7IGkrKyApIHsKCQkvKiBuYSB6YWNhdGt1IG8gY2lzbGUgcHJlZHBva2xhZGVqbWUsIMW+ZSBqZSBtYXhpbWFsbmkgKi8KCQljaGFyIGlzTWF4ID0gMTsKCQkKCQlmb3IgKCBqID0gMDsgaiA8IGNvdW50OyBqKysgKSB7CgkJCS8qIHBva3VkIG5hamRlbWUgY2lzbG8sIGt0ZXLDqSBqZSB2ZXRzaSwgcGFrIG5hc2UgY2lzbG8gbmVuaSBtYXhpbWFsbmkgYSBteSBuZW11c2ltZSBwcm9jaGF6ZXQgZGFsc2kgKi8KCQkJaWYgKCBhcnJheVsgaSBdIDwgYXJyYXlbIGogXSApIHsKCQkJCWlzTWF4ID0gMDsKCQkJCWJyZWFrOwoJCQl9CgkJfQoJCgkJLyogcG9rdWQganNlbSBwcm9zZWwgdnNlY2huYSBjaXNsYSBhIHphZG5lIG5lYnlsbyB2ZXRzaSwgcGFrIGpzbWUgbmFzbGkgbWF4aW11bSAqLwoJCWlmICggaXNNYXggKSB7CgkJCXJldHVybiBhcnJheVsgaSBdOwoJCX0KCX0KfQoKaW50IG1haW4gKCB2b2lkICkKewoJZmxvYXQgcG9sZSBbXSA9IHsgNiwgMiwgMTAsIDgsIDIzLCA0IH07CgkvKiBEZWZpbmljZSBmbG9hdCBwb2xlIFtdIHJpa2EsIHplIGRlZmludWppIHBvbGUgKGhyYW5hdGUgemF2b3JreSByaWthamkgamUgdG8gcG9sZSkgZmxvYXQgKi8KCS8qIFBvbGUgbXV6dSBkZWZpbm92YXQgcyBwb2N0ZW0gcHJ2a3UgY2kgYmV6LCBhbGUgcGFrIG11c2ltIGhuZWQgcHJpcmFkaXQgZG8gbmVqIGhvZG5vdHkuICovCgkvKiBUYWt0byBkZWZpbm92YW5lIHBvbGUgc2UgbmVkYSB6dmV0c292YXQgKi8KCQoJLyogWmF2b2xhbSBmdW5rY2ksIGt0ZXJlIHByZWRhbSBwb2xlIGEgamVobyB2ZWxpa29zdC4gKi8KCS8qIHNpemVvZihwb2xlKSB1ZGF2YSBwb2NldCBieXR1IHBvdHJlYm55Y2ggcHJvIHByb21lbm5vdSBwb2xlID0gcG9jZXQgcHJ2a3UgKiB2ZWxpa29zdCBmbG9hdCAqLwoJLyogc2l6ZW9mKGZsb2F0KSB1ZGF2YSBwb2NldCBieXR1IGZsb2F0dSA9PiBwb2RpbCB1ZGF2YSBwb2NldCBwcnZrdSAqLwoJaW50IG1heCA9IGdldE1heCggcG9sZSwgc2l6ZW9mKHBvbGUpIC8gc2l6ZW9mKGZsb2F0KSApOwoJcHJpbnRmKCAiTWF4aW1hbG5pIGNpc2xvIGplICVkLlxuIiwgbWF4ICk7CgkKCXJldHVybiAwOyAvKiBSZXR1cm4gMCB6bmFjaSwgemUgcHJvZ3JhbSBza29uY2lsIHVzcGVzbmUuICovCn0=