zwracanie wskaźnika
Ostatnio zmodyfikowano 2015-12-04 18:45
Filippo9669 Temat założony przez niniejszego użytkownika |
» 2015-12-03 20:53:56 tak, strukturę napisałem, tylko mam problem z tymi wskaźnikami. czy gdybym się strasznie uparł, że chcę zobaczyć to rozwiązanie, to pomożesz mi, podsuniesz jakiś pomysł? :) |
|
carlosmay |
» 2015-12-03 22:21:45 Taki mała prowizorka (tablica do samodzielnej implementacji): #include <iostream> #include <cstdlib> using namespace std;
struct V { int x; int y; V( int ix, int iy ) : x( ix ) , y( iy ) { } void show() { cout << x << " " << y; } };
V * wylicz( V * st1, V * st2, V * od ) { double x1 =( st1->x + st1->y ) / double( 2 ); double x2 =( st2->x + st2->y ) / double( 2 ); double x_od =( od->x + od->y ) / double( 2 ); if(( x1 - x_od ) <( x2 - x_od ) ) return st2; else if(( x1 - x_od ) >( x2 - x_od ) ) return st1; else if(( x1 - x_od ) ==( x2 - x_od ) ) return st1; else return NULL; }
int main() { V a1( 15, 6 ); V a2( 15, 7 ); V odniesienie( 1, 1 ); V * p1 = & a1; V * p2 = & a2; V * p_od = & odniesienie; V * p_wynik = wylicz( p1, p2, p_od ); if( !p_wynik ) { cout << "Jakis blad" << endl; V a( 0, 0 ); p_wynik = & a; } else p_wynik->show(); cout << endl; system( "pause" ); }
Jak będzie tablica, do funkcji wysyłasz pierwsze dwa elementy. Dostajesz zwrot dalszego. Wysyłasz zwrot i następny element, itd., aż do końca tablicy. Ostatni zwrot będzie maksymalnie odsuniętym punktem. Powodzenia. |
|
Filippo9669 Temat założony przez niniejszego użytkownika |
» 2015-12-03 22:28:07 o rany, faktycznie bez sensu. ale ogromne dzięki, przestudiuję to :) |
|
Monika90 |
» 2015-12-04 18:19:12 { V a( 0, 0 ); p_wynik = & a; }
|
Po co to przypisanie? Obiekt nie będzie istniał po wyjściu z bloku. |
|
carlosmay |
» 2015-12-04 18:45:51 if( !p_wynik ) { cout << "Jakis blad" << endl; V a( 0, 0 ); p_wynik = & a; } else p_wynik->show();
p_wynik->show();
zmodyfikowałem, żeby się wykonało przypisanie i na wyjściu mam Jakis blad 0 0
Zasugerowałem się tym, że działa. Dzięki za uwagę. UB |
|
1 « 2 » |