Zadání:
Sestavte program, který v poli čísel (max. 100) nalezne maximum a minimum a jejich pozici.
Řešení:
Na začátku programu načteme počet čísel v poli. Poté pomocí prvního cyklu FOR zadáme všechna čísla do pole.
Pomocí dalších čtyř řádků prohlásíme první prvek za maximum i minimum (min=pole(0); max=pole(0);) a uložíme
jeho pozici do pozice maxima a minima (pozmin=0; pozmax=0;). Dalším cyklem FOR otestujeme všechny ostatní
prvky pole, zda nejsou menší či větší než minimum a maximum. Pokud ano, uložíme jejich hodnoty a pozice
do příslušných proměnných. Na konci programu hodnoty a jejich pozice vytiskneme.
#include "stdafx.h"
#include "math.h"
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
float pole[100];
int n,i,pozmin,pozmax;
float min,max;
printf("Zadejte pocet cisel: ");
scanf_s("%d",&n,1);
for (i=0;i<n;i++)
{
printf("Zadejte %d.cislo: ",i);
scanf_s("%f",&pole[i],1);
}
min=pole[0];
max=pole[0];
pozmin=0;
pozmax=0;
for (i=1;i<n;i++)
{
if (min>pole[i])
{
min=pole[i];
pozmin=i;
}
if (max<pole[i])
{
max=pole[i];
pozmax=i;
}
}
printf("Minimalni hodnota: %.3f, pozice: %d\n",min,pozmin);
printf("Maximalni hodnota: %.3f, pozice: %d\n",max,pozmax);
system("pause");
return 0;
}
program ke stažení
Pro studenty
Zamyslete se nad tím, jak se bude program chovat v situaci, kdy budou v poli dvě shodné minimální nebo maximální hodnoty.