[C++] - Adres największego elementu tablicy
Ostatnio zmodyfikowano 2014-11-25 12:16
Vixos Temat założony przez niniejszego użytkownika |
[C++] - Adres największego elementu tablicy » 2014-11-25 11:38:23 Chodzi o to aby funkcja nie zwracała największego elementu, ale numer jaki zajmuje w tabeli.
int *maximum(int N, int *t) { if(N==0) return 0; if(N==1) return t; if(*(t+N-1)>*maximum(N-1,t)) return t+N-1; else return maximum(N-1,t); }
int t[] = {1,2,3,4,-1,2}; cout<<*maximum(6,t)<<endl;
//Czyli dla podanych danych wynik powinien być: 3. |
|
akwes |
» 2014-11-25 12:16:00 Rozumiem, że adres masz na myśli "4 miejsce od początku tablicy" a nie "0x00FF..."? Jeżeli tak, to możesz od adresu zmiennej (int*) odjąć adres tablicy (int*) wtedy otrzymasz wynik w postaci std::ptrdiff_t, który jest typem całkowitoliczbowym i dasz radę go wypisać za pomocą std::cout. Należy pamiętać aby przy takim odejmowaniu używać adresów z tej samej tablicy. W Twoim przypadku wystarczy nieznacznie zmienić tę linię kodu: cout <<* maximum( 6, t ) << endl;
Potrzebujesz od adresu zmiennej odjąć adres tablicy. // A, i jeszcze popraw formatowanie postu :) Co i jak znajdziesz w takiej czerwonej ramce, która na pewno rzuciła Ci się w oczy :) |
|
« 1 » |