Re: Ещё - Plus , 30.11.2004 14:59 MSK | ||
: : : Нужно поменять местами значения двух переменных: A и B. : : : Ну, например: T = A; A = B; B = T; : : : А можно ли обойтись без временной переменной T? : : : : : : Если решение вам уже было известно - напишите просто: "А я знаю". : : : : Я знаю, это очень просто. : : Eto znaet kazdii programist. Ах, вот как? Впрочем, чего ещё ожидать, если теперь программистом считают человека, умеющего "распечатать ворд". Во-первых, программист-практик в первую очередь вспомнит о команде XCHG из x86, и инструкции __asm. И предложит такое решение просто из вредности, так как оно действительно оптимально. Автор задачи сморщится и попросит обойтись каким-нибудь машинно-независимым способом. Следующий вариант, я уверен, будет такой: A=A^B;B=A^B;A=A^B; Автор станет совсем грустным, и скажет: "Это ведь так просто". На что программист ему скажет, что Basic в случае переполнения просто вылетит, а если переменные не целого типа, то возможна потеря точности. И релиз будет выглядеть примерно так: #define switch(a,b) { \ __ASSERT(typeof(a)==typeof(b)); \ if (sizeof(a) > 0) {*(char*)&a= ну, и так далее... | ||
|