Problem - szablon funkcji wybierającej największą liczbę z tablicy

0

Witam, jestem nowy na forum. Uczę się od jakiegoś czasu c++ i robiłem proste ćwiczenie. Ale mam problem. Funkcja choose ma zwracać największą wartość.

#include<iostream>

const int ArrSize = 5;
template <typename T>
int choose(T arr[]);

int main()
{
	using namespace std;
	int InArr[ArrSize] = {1, 9, 54, 20, 40};
	double DoArr[ArrSize] = {20.4, 15, 37.2, 80, 73.2};
	int maxIn = choose(InArr);
	cout << "maxIn = " << (InArr[maxIn]) << endl;
	int maxDo = choose(DoArr);
	cout << "maxDo = " << (DoArr[maxDo]) << endl;
}

template <typename T>
int choose(T arr[])
{
	using namespace std;
	int wynik = 0;
	int max = arr[0];
	for(int i = 1; i < ArrSize; i++)
	{
		if (arr[i] > max);
		{
			cout << arr[i] << " > " << max << endl;
			max = arr[i];
			wynik = i;
		}	
	}
	return wynik;
}
 

Funkcja zawsze zwraca ostatnią, a nie największą liczbę. Sprawdziłem, że warunek

if (arr[i] > max) 

jest spełniany przez każdą parę liczb (np. 20 > 40 to true). Co zrobiłem, źle? Czy to ze względu na szablon?
Z góry dzięki za pomoc.

0

<code=cpp
[...]
if (arr[i] > max); <<<<<<<<<<<<<
[...]

0

Dobra widzę, ojej głupi błąd - średnika po warunku nie powinno być. Sorry za zamieszanie, ale nie widziałem tego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1