Zerowanie przekątnej tablicy 4 wymiarowej

Odpowiedz Nowy wątek
2015-01-11 01:08
Sidar
0

Witam programersów.
Szybkie pytanie, mam tablice 4 wymiarową wagi[i][j][k][l], chcę wyzerować "główną" przekątną, jak to się robi w macierzach... czy warunek będzie wyglądał tak? (oczywiście ten warunek w pętlach)

if(i==j==k==l){
                    wagi[i][j][k][l]=0;
            }

coś mi nie chce działać - tzn program zachowuje sie "podobno" (bo tak powiedział prowadzący) tak jak by przekątna nie była wyzerowana.

Pozostało 580 znaków

2015-01-11 01:23
0

może spróbuj

if(i==j && i==k && i==l) 

a wgl najlepiej będzie gdy zrobisz coś takiego

 std::vector<size_t> v(4);
size_t min;

//te twoje wymiary
v[0] = w1;
v[1] = w2;
v[2] = w3;
v[3] = w4;

min = std::min_element(v.begin(), v.end());

for(int i = 0; i < min; ++i)
    wagi[i][i[i][i] = 0;

znacząco zmniejszysz czas :)

EDIT

chyba, że wymiary są takie same to nawet tego wektora nie musisz robić

edytowany 2x, ostatnio: stryku, 2015-01-11 01:26

Pozostało 580 znaków

2015-01-11 01:31
0

Albo zagnieżdżasz ify, albo używasz && (logiczny AND). W Twojej wersji porównujesz wartości zmiennych do tego do wartości boolowskich zwróconych przez operator ==. Czyli w większości przypadków if się nie wykona.

Pozostało 580 znaków

2015-01-11 01:54
Sidar
0

Dziękuję, za wskazówki. : )
Program nadal nie chodzi - szukam błędu gdzie indziej : D

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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