C++ MIN i MAX z tab[3] :?


(system) #1

Witam Wszystkich i zwracam się z wielką prośbą przy napisaniu programu w języku c++.

#include "stdafx.h"

#include 

#include "conio.h"


using namespace std;


//zmienne

int tab[3];

int max,min;


/////////


int main()

{

	tab[0]=2;

	tab[1]=-5;

	tab[2]=7;


	for(int i=0;i<3;i++)

		cout<

        if(tab[i]>max)

        max=tab[i];

        if(tab[i]
        min=tab[i];


cout<<"MIN: "<
cout<<"MAX: "<
	return 0;

}

Wyświetlić elementy z tablicy potrafię ale jak dołączyć do tego funkcje MIN i MAX.

Byłbym bardzo wdzięczny za jakąkolwiek pomoc z Waszej strony.


(Marcin 110) #2

Można tak (ale to zbyt brutalne):

max = (tab[0] > tab[1]) ? ((tab[0] > tab[2]) ? tab[0] : tab[2]) : ((tab[1] > tab[2]) ? tab[1] : tab[2]);

A można też tak (dla leniwych):

max = *max_element(tab, tab + 3); //wymaga #include

lub tak (chyba o to chodziło):

max = tab[0];

for (int i = 1; i < 3; ++i)

  if (tab[i] > max)

    max = tab[i];

--EDIT: Oj nie dopatrzyłem. Twój kod jest prawie dobry, tylko musisz zapisać fora w klamerkach, o tak:

for (int i = 0; i < 3; ++i)

{

// kod

}

([alex]) #3

Generalnie jest dwie metody:

  1. deklaracja zmiennej min

  2. jeżeli rozmiar tablicy mniejsza niż 1 to przejdź do 6

  3. wpisz w min pierwszy element tablicy

  4. w pętle po każdym elemencie tablicy oprócz pierwszego - zmienna i

  5. jeżeli min większa od i-go elementu tablicy to wpisz i-ty elementu tablicy do min

  6. koniec pętli

  7. deklaracja zmiennej min

  8. w pętle po każdym elemencie tablicy - zmienna i

  9. jeżeli zmienna i jest indeksem pierwszego elementu lub min większa od i-go elementu tablicy to wpisz i-ty elementu tablicy do min

  10. koniec pętli

jeżeli wiesz ile elementów ma tablica to:

Min=min(tab[0],min(tab[1],tab[2]));

Max=max(tab[0],max(tab[1],tab[2]));

funkcje min,max - w


(system) #4

Dzięki za pomoc nieraz taka mała rzecz jest do zrobienia a Cieszy;p

tak na marginesie flash4gordon Mógłbyś pokazać analogicznie jak stworzyć taki kod dla min??

max = tab[0];

for (int i = 1; i < 3; ++i)

  if (tab[i] > max)

    max = tab[i];

(Marcin 110) #5

drYstar , nie.


(misza_88) #6

drYstar wystarczy dobrze się przyjrzeć i odpowiedź sama rzuca się w oczy


(system) #7

A wartość średnia dla tego programu wyglądała by następująco:??

int srednia;

srednia=(tab[0]+tab[1]+tab[2])/3;

 cout<<"Srednia liczb z tablicy wynosi: "<

Prosze o pomoc powyzszy kod ( nie wiem czy do końca poprawny) wyświetla mi liczbę całkowitą a ja potrzebuję liczbę z dokładnością do dwóch miejsc po przecinku.

Z góry dziękuję i pozdrawiam :wink:


(Marcin 110) #8

Dołącz w nagłówkach

#include

double srednia=(tab[0] + tab[1] + tab[2]) / 3.0;

cout<<"Srednia liczb z tablicy wynosi: "<< fixed << setprecision(2) << srednia << endl;

(Zulowski) #9

Jak chcesz zmienną z częścią ułamkową, to tak jak wyżej pisali, Double lub Float

Poczytaj o typach zmiennych.