Pierwszy maksymalny element...

0

"Przestawic wartosci dwóch elementów tablicy: pierwszego ujemnego i pierwszego maksymalnego. Piszac program nalezy dopuscic mozliwosc, ze tablica nie ma elementów ujemnych."

Czy może mi ktoś powiedzieć o co chodzi z tym pierwszym maksymalnym?
Np.

-10 -5 7 13 15 15 15

to rozumiem ze pierwszy maksymalny ma 15 tak?

0

Na moje oko to ktoś kto to pisal jest idiotą i nie umie mówic po polsku, a chodzi mu o maksimum i minimum z tablicy po prostu.
A autor nie umie czytać, bo liczby mają być dodatnie...
Czyli dla
1 2 3 4 5
ma zwrócić 1 i 5

0

"Piszac program nalezy dopuscic mozliwosc, ze tablica nie ma elementów ujemnych."

Czytanie ze zrozumieniem się kłania.

0

o_O No właśnie kłania się.
"Nalezy dopuscić możliwość ze tablica nie ma elementów ujemnych"

Nie uczą już w gimnazjum czytania ze zrozumieniem?

0

@shalom
"Nalezy dopuscić możliwość ze tablica nie ma elementów ujemnych"
Ja bym zwrócił uwagę na słowo dopuszczać. Czyli tablica może mieć elementy ujemne ale nie musi.
Tak pierwsze maksimum to -10 -5 7 13 15 15 15.

0

Chodzi też o pierwsze maksymalne minimum (wśród liczb ujemnych) :P (maksymalne minimum to jakiś mocny oksymoron ^^)

czyli -10 -5 7 13 15 15 15
//ale i tak niefortunnie ułożone polecenie bo można to interpretować jako to że będzie to jednak liczba -5
//tak czy siak - przećwiczysz to samo więc wybierz dla Ciebie trudniejszą wersję :P (albo zrealizuj obie :) )
A jeżeli nie ma liczby ujemnej to nie wypisywać owego minimum :P

I tak rozwiązaliśmy zagadkę:P (prawie :P)

0
abc napisał(a)

Chodzi też o pierwsze maksymalne minimum (wśród liczb ujemnych) :P (maksymalne minimum to jakiś mocny oksymoron ^^)

czyli -10 -5 7 13 15 15 15
//ale i tak niefortunnie ułożone polecenie bo można to interpretować jako to że będzie to jednak liczba -5
//tak czy siak - przećwiczysz to samo więc wybierz dla Ciebie trudniejszą wersję :P (albo zrealizuj obie :) )
A jeżeli nie ma liczby ujemnej to nie wypisywać owego minimum :P

I tak rozwiązaliśmy zagadkę:P (prawie :P)

A maksymalne minimum to nie największa liczba czyli -5?:D

0

Nie "maksymalne minimum", tylko "pierwszy element ujemny" -- to zdanie jest dość jasne, np. -10 -5 7 13 15 15 15 lub 2 4 -6 -8 6 -4 4.

"Pierwszy maksymalny" element -- to też jest jasne: bierzemy element maksymalny z tablicy, a jeśli istnieje kilka elementów maksymalnych, to bierzemy pierwszy z nich.

Pytanie tylko co zrobić z klauzulą o dopuszczeniu tablicy z elementami nieujemnymi -- jaki ma być pierwszy nieujemny? Proponowałbym zwrócić wtedy 0.

PS Swoją drogą, jeśli zwracamy tylko wartości, to "pierwszy element maksymalny" ma taką samą wartość jak (ewentualny) n-ty element maksymalny, więc wystarczy wartość maksymalna. ;)

//EDIT:
NIe doczytałem: te elementy mają być przestawione, więc kolejność się jednak liczy. Z tego, co rozumiem, dla podanego przykładu należy dokonać transformacji: -10 -5 7 13 15 15 15 --> 15 -5 7 13 -10 15 15. Gdy brak elementów ujemnych, nie robimy nic. Teraz zagadka jest chyba rozwiązana. ;)

0

w stylu STLa:

int *firstNegative(int *begin, int *end) {
    for(; begin!=end; ++begin) 
         if(*begin<0) {
              return begin;
         }
    return begin;
}
int *firstMaximum(int *begin, int *end) {
    int *max = begin;
    if(begin!=end)
        for(begin++; begin!=end; ++begin) 
            if(*begin>*max) {
                max = begin;
            }
    return max;
}
0
int* end = array + size;
int* first_neg = find_if(array, end, bind2nd(less<int>(), 0));
if(first_neg != end) //first_neg to end jeśli nie ma ujemnych
  swap(*first_neg, *max_element(array, end));

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