C++ задачка

task-c

#1

Здравейте,може ли да ми помогнете със следната задача,че съм зацепил тотално…

Програма, която чете от стандартния вход едно число N и след това - N на брой цели числа. Съхранене числата във вектор. Напишете функция, която приема този вектор като единствен входен параметър по референция (константна) и връща сумата на най-голямото и най-малкото число в него. В main функцията изведете резултата от функцията на стандартния изход. Забележете, че изходът е едно единствено число, последвано от нов ред.

Пример:

Вход: 5 20 10 30 50 40

Изход: 60


#2

Сортирай масива и събери -> vect[1] + vect[vect.length - 1] и го изпечатай.


#3

5+50 = 55?


#4

ако още не си се оправил пиши ми на лично във facebook Yani Yordanov


#5

Вариант 1:

int v[].........; Създаваш масив в който ще пазиш числата

Ако входа е input[] =  5 20 10 30 50 40
Значи създаваш масив с големина първото число - 5

int length = input[0];
int v[length];

След което запълваш масива с останалите елементи с един for цикъл;
Този подход е мега дърварски, но ако си начинаещ е най-добрият за да разбереш от къде минава и какво се случва.

След това така намираш най-голямото и най-малкото число и ги събираш;

min = v[0];
max = v[0];
for(int i = 1 ; i < 10 ; i++)
{
	if(min > v[i])
	{
		min = v[i];
	}
		else if(max < v[i])
	{
		max = v[i];
	}
}
int result = max + min;

Вриант 2:
Доста по-кратък начин, но ако не си свикнат с въпросните for-ове няма да ти е ясно защо и как работи кода.

Използваш библиотеката “algorithm”
Най-горе добавяш - include <algorithm>

след което е лесно да намериш числата:

int max = std::max_element(v + 1, v.Length - 1);

Намери ми май-голямото число между вторият и последният елемент. Изключваме първият защото не ти трябва. Той е за да покаже само колко числа следват. Т.Е. input[] = 5 20 10 30 50 40
5 - следват 5 числа “20 10 30 50 40” търсим само в тях.

За min е същата рабора

int min = std::min_element(v + 1, v.Length - 1);

и накрая събираш int result = min + max;