Navigace: Hlavní stránka -> Jazyk C -> 05 Jednorozměrná pole -> 05.04 Hledání maximální a minimální hodnoty v poli a jejich pozice

MENU

05.04 Hledání maximální a minimální hodnoty v poli a jejich pozice

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.