Вопрос № 182835: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Тема массивы: Переставьте соседние элементы массива (0-й элемент поменять с 1-м, 2-й с 3-м и т.д. Если элементов нечетное число, то последний элемент остается на своем ме...
Вопрос № 182835:
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Тема массивы: Переставьте соседние элементы массива (0-й элемент поменять с 1-м, 2-й с 3-м и т.д. Если элементов нечетное число, то последний элемент остается на своем месте)
int main() { int i, m, n; cout<<"Введите количество чисел: "; cin>>n; int *arr = new int[n]; cout<<"Введите
"<<n<<" целых чисел: "; for (i=0; i<n; i++) cin>>arr[i]; for(i=0; i<n-1; i+=2) { m = arr[i]; arr[i] = arr[i+1]; arr[i+1] = m; } for (i=0; i<n; i++) cout<<arr[i]<<" "; cout<<endl; delete [] arr; return 0; }
Ответ отправил: Жерар (Специалист)
Ответ отправлен: 12.04.2011, 17:15
Номер ответа: 266674 Россия, Томск Тел.: 8-923-411-36-58
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 266674
на номер 1151 (Россия) |
Еще номера »
Отвечает Лысков Игорь Витальевич (Старший модератор) :
Здравствуйте, Alejandro! Вариант обмена без использования дополнительной переменной (используем операцию XOR) Дополнительно, идем по парам.
Код:
#include<iostream> using namespace std;
int main() { int
i, m, n; cout<<"Введите количество чисел: "; cin>>n; int *arr = new int[n]; cout<<"Введите "<<n<<" целых чисел: "; for (i=0; i<n; i++) cin>>arr[i]; m=n/2; for(i=0; i<m; i++) { arr[i*2] ^= arr[i*2+1]; arr[i*2+1] ^= arr[i*2]; arr[i*2] ^= arr[i*2+1]; } for (i=0; i<n; i++) cout<<arr[i]<<" "; cout
<<endl; delete(arr); return 0; }
----- Люби своего ближнего, как самого себя
Ответ отправил: Лысков Игорь Витальевич (Старший модератор)
Ответ отправлен: 12.04.2011, 17:40
Номер ответа: 266677 Украина, Кировоград Тел.: +380957525051 ICQ # 234137952 Mail.ru-агент: igorlyskov@mail.ru
Оценка ответа: 5
Вам помог ответ? Пожалуйста, поблагодарите эксперта за это! Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 266677
на номер 1151 (Россия) |
Еще номера »
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.