Zerowanie przekątnej tablicy 4 wymiarowej

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.

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ć

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.

0

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

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