Witam,
mam do napisania i przetestowania taką funkcję
int minmaxreord(int* tab, int size, int* pmn, int& mx)
która pobiera tablicę intów o wymiarze size i
- przestawia elementy tak, że elementy parzyste znajdują się przed nieparzystymi (w ramach grup parzyste i nie parzyste kolejność jest dowolna)
-do zmiennej wskazywanej przez pmn wstawia najmniejszą wartość tablicy, a do zmiennej, której referencją jest mx nadaje wartość elementu największego
-zwraca indeks pierwszego elementu nie parzystego po przestawieniu (zero jeżeli wszystkie elementy są nie parzyste, size czyli pozycję poza tablicą jeżeli wszystkie elementy są parzyste.
Wszystkie wyniki powinny być wypisywane w funkcji main, sama funkcja minmaxreord nic nie pisze.
stworzyłem coś takiego :
#include <iostream>
using namespace std;
int minmaxreord(int* tab, int size, int* pmn, int& mx){
//pobranie tablicy intów
int *i = &size;
tab = new int[*i];
for(int k = 0; k < *i; ++k)
{
cout << "Podaj wartosc " << (k + 1) << " elementu: ";
cin >> tab[k];
}
//wyznaczenie max
for(int k = 0; k < size; ++k)
if(tab[k] > mx)
mx = tab[k];
//wyznaczenie min
for(int k = 0; k < size; ++i)
if(tab[k] < *pmn)
*pmn = tab[k];
//uporzadkowanie tablicy
int k, l, pom;
l = 0;
for (k=0; k<*i; k++)
if (*tab%2 == 0) {
pom=*tab;
*tab=tab[l];
tab[l]=pom;
l++;
}
};
main(){
}
Nie wiem czy funkcja jest w porządku bo nie umiem jakoś jej zainicjować w main tak aby działała.
Proszę o sprawdzenie i jakieś podpowiedzi.
Jeżeli chodzi o zwrot indexu to muszę znowu po kolei sprawdzić całą tablicę od początku (zaczyna się od parzystych) i znaleźć pierwszą nie parzystą ?
Z góry dziękuję za pomoc i pozdrawiam.