9. Ukazovatele a polia
9.2 Pole - zopakujme si
Pole ako údajovú štruktúru zloženú z prvkov
rovnakého typu nie je potrebné zvlášť predstavovať.
V jazyku C síce platia isté obmedzenia (pole vždy začína
prvkom s indexom 0, medze polí sa nekontrolujú a pod.)
ale vďaka úzkej súvislosti medzi poliami a pointermi (pointerová
aritmetika) dokážeme s poliami "stvárať" oveľa zaujímavejšie kúsky
ako napr. v Pascale :-)
Cieľom
tejto časti nie je vysvetliť všetko, čo sa týka polí
v jazyku C, ale predovšetkým poukázať na blízkosť pointerov
a polí, pozrieť sa na pole s iného pohľadu ako sme boli
doposiaľ zvyknutí (napr. z Pascalu) - z pohľadu pointerovej
aritmetiky.
Vráťme
sa na chvíľu k príkladu, ktorý už asi každý z vás niekedy
naprogramoval. (Alebo aspoň nejaký podobný :-) Zopakujeme si, čo by ste
už o práci s poľom mali vedieť.
Úloha znie takto: V poli, do ktorého načítame n celých čísel zo vstupu, máme vyhľadať najväčší prvok t.j. maximum.
#include <stdio.h>
#define POCET 50
void main(void)
{
int a[POCET]; /* pole 50 prvkov, indexy od 0 po 49! */
int n, i, max;
printf("pocet prvkov n = "); /* vstup */
scanf("%d\n", &n);
for (i = 0; i < n ; i++) {
printf("%d. prvok: ", i + 1);
scanf("%d", &a[i]);
}
max = a[0]; /* hľadanie maxima */
for (i = 0; i < n ; i++) {
if (a[i]>max) max = a[i];
}
printf("Maximum je %d \n", max); /* výstup */
}
|