• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ Wskaźniki Funkcja min_max element w tablicy

Cloud VPS
0 głosów
605 wizyt
pytanie zadane 24 listopada 2018 w C i C++ przez eSpring Początkujący (270 p.)

Dobry, mam pytanka:
 

#include <iostream>

double arr_min_max(int* tab, std::size_t n, int* min_elem, int* max_elem); // tab - wskaźnik na pierwszy element tablicy, n - rozmiar tablicy, min_elem, max_elem - wskaźniki na zmienne typu int, w których zapisany ma być wynik.

double arr_min_max(int* tab, std::size_t n, int* min_elem, int* max_elem)
{
	for (int i = 0; i < n;i++)
	{
		if (tab[i] < min_elem)
			min_elem = tab[i];
		if (tab[i] > max_elem)
			max_elem = tab[i];
	}

}

int main() {
	int tab[10] = { 87,5,266,6,7,4,9,11,15,124 };
	
	return 0;
}

Oto moja funkcja, w jaki sposób rozwiązać błąd przy operatorach : operan types are incompatible ("int" and "int*").

Jak wywołać w/w funkcje aby zwracała min element i maksymalny element. Z góry dziękuje za pomoc !!

2 odpowiedzi

+1 głos
odpowiedź 24 listopada 2018 przez VirtualMember Pasjonat (15,790 p.)
Jeśli chcesz zwracać parę to proponuję zwracać obiekt std::pair<double,double>(min_elem,max_elem). Ale wtedy musisz zmienić aby Twoja funkcja zwracała nie double a std::pair<double,double>
+1 głos
odpowiedź 24 listopada 2018 przez Arkadiusz Sikorski Pasjonat (20,160 p.)

Oto moja funkcja, w jaki sposób rozwiązać błąd przy operatorach : operan types are incompatible ("int" and "int*").

 

min_elem = tab[i];
...
max_elem = tab[i];

W tych liniach dokonujesz przypisania wartości int do wskaźnika na int, użyj operatora wyłuskania:

*min_elem = tab[i];
...
*max_elem = tab[i];

 

Taka uwaga poboczna, pamiętaj, że wartość kryjąca się pod adresem min_elem podczas przekazywania do funkcji musi być większa niż najmniejszy element w przekazywanej tablicy, w przeciwnym razie funkcja będzie działała bezsensownie. Możesz zainicjować *min_elem wartością pierwszego elementu z przekazywanej tablicy, żeby rozwiązać ten problem. Analogicznie z max_elem.

A jeśli chcesz zwrócić parę, a nie operować na wskaźnikach, to pójdź za radą VirtualMember i zwróć std::pair, program będzie wtedy na pewno czytelniejszy.

komentarz 25 listopada 2018 przez eSpring Początkujący (270 p.)
Pomogło!

Natomiast przy wywoływaniu funkcji, arr_min_max nie wiem jak parametry zadeklarować.

Podobne pytania

0 głosów
2 odpowiedzi 562 wizyt
pytanie zadane 12 kwietnia 2022 w C i C++ przez xTMx3 Obywatel (1,560 p.)
0 głosów
1 odpowiedź 948 wizyt
0 głosów
2 odpowiedzi 1,404 wizyt
pytanie zadane 28 września 2018 w C i C++ przez eSpring Początkujący (270 p.)

93,469 zapytań

142,404 odpowiedzi

322,716 komentarzy

62,852 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...