Форум программистов, компьютерный форум CyberForum.ru

Поменять местами два элемента массива - C++

Восстановить пароль Регистрация
 
Blacccatt
0 / 0 / 0
Регистрация: 13.02.2011
Сообщений: 37
17.02.2011, 15:47     Поменять местами два элемента массива #1
Значит вот такую задачу на С++ мне помогли написать здесь,но сложновато для понимания,есть ли другие решения этой задачи?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector>
#include <iterator>
 using namespace std;
int main()
{
 vector<int> vec((istream_iterator<int>(cin)), 
  istream_iterator<int>());
  cin.clear();
   cin.get();
   int n;
   cout<<"Enter n: ";
   cin>>n;
   if(n-1 >= vec.size())
   {
     cerr<<"Ranged error\n"; 
     return 1;
   }
  swap(vec[0], vec[n-1]);
   copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
   cout<<'\n';
   return 0;
}
Добавлено через 13 минут
даны два числа а и в - -- а присвоить в, а в присвоить а,так делать?что-то я запутался?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.02.2011, 15:55     Поменять местами два элемента массива #2
C++
1
2
3
tmp=a[0];
a[0]=a[n-1];
a[n-1]=tmp;
Blacccatt
0 / 0 / 0
Регистрация: 13.02.2011
Сообщений: 37
17.02.2011, 17:13  [ТС]     Поменять местами два элемента массива #3
посмотрите,правильно?
допустим задаю размерность массива 3
ввожу
3
2
8
Выдает мне
n=3
Так и должно быть?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
 using namespace std;
 int main ()
{
int mas[5];
int n,i,tmp;
 
      cout<<"N= ";// задаем размерность массива mas
  cin >>n;
     for (i=0; i<n;i++)  
         cin >>  mas[i];
 
 {  tmp=mas[0];
mas[0]=mas[n-1];
mas[n-1]=tmp;
}
 
cout<<"n="<<tmp ;
 
}
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.02.2011, 17:17     Поменять местами два элемента массива #4
Цитата Сообщение от Blacccatt Посмотреть сообщение
tmp=mas[0];
Вот вы переменой tmp присваеваете значение елемента a[0], то есть 3.

А что бы увыдеть, как изменились елементы, выведите массив на екран после замены.
Blacccatt
0 / 0 / 0
Регистрация: 13.02.2011
Сообщений: 37
17.02.2011, 18:00  [ТС]     Поменять местами два элемента массива #5
задаю размерность массива N =3
ввожу 7 2 0
выдаёт 0 2 7
Верно?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
 using namespace std;
 int main ()
{
int mas [3] ;
int n,i,tmp;
 
      cout<<"N= ";// задаем размерность массива mas
  cin >>n;
     for (i=0; i<n;i++)  
         cin >>  mas[i];
 
 {  tmp=mas[0];
mas[0]=mas[n-1];
mas[n-1]=tmp;
}
 for (i=0; i<n;i++)  
cout<<"n="<<mas [i]<<' ';
 
}
Миниатюры
Поменять местами два элемента массива  
MuDMaN
3 / 3 / 0
Регистрация: 14.02.2011
Сообщений: 55
17.02.2011, 18:49     Поменять местами два элемента массива #6
что бы не создавать временную переменную можно так
C++
1
2
3
4
//Меняет значения переменных местами
a+=b;
b=a-b;
a-=b;
Yandex
Объявления
17.02.2011, 18:49     Поменять местами два элемента массива
Ответ Создать тему
Опции темы

Текущее время: 23:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru