LINUX.ORG.RU

Fortran, как убрать лишнюю переменную


0

0

Сразу sorry, за стиль - пишу с телефона. Есть такой кусок программы : DO i=1,x _ DO j=1,x _ if a(i).gt.a(j) then _ u=a(i) _ a(i)=a(j) _ a(j)=u _ end if _ end do _ end do. Как сделать тоже самое, поменять местами значения в массиве, но без использования третьей переменной u?

anonymous

В си это достижимо при помощи исключающего или (xor)

a=a^b;
b=a^b;
a=a^b;

gena2x ★★★
()

Какой именно Фортран?

Если используется Фортран 90 и выше, то вот так, например:

if a(i)>a(j) then

a(/(i,j)/) = a(/(j,i)/)

endif

gene
()
Ответ на: комментарий от amoralyrr

В фортране самое главное - не писать комментариев, чтобы не нарушать общий стиль. Люблю этот язык.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.