Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > > подскажите как менять местами элементы в одномер


Автор: GodofChaos 26.12.2007, 09:47
вот есть код который выводит одномерный массив n размера из случайных числе

вопрос такой.... как поменять местами .. первый и последний, второй и предпоследний и т.д. элементы одномерного массива

Код

#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
using namespace std;
char Rus[64];
int main()
{
int n,i;
int mas[n];

CharToOem ("\n\nВведите размерность масива: ",Rus);
cout << Rus;
cin >> n;
cout << "\n";

//заполнение массива

for(i=0;i<n;i++)
{
mas[i]=rand()%100-20;
cout<<mas[i]<<" ";
}

// перестановка элементов..... как?? icon_sad.gif

CharToOem ("\n\nДля завершения программы нажмите <Enter> \n", Rus);
cout << Rus;

getch();
}



 ! 
archimed7592
Пользуйся тэгом [CODE][/CODE]

Автор: Djinn 26.12.2007, 09:52
Не уверен, но может просто в другой масив всё писать ?

Автор: dumb 26.12.2007, 10:47
Цитата(GodofChaos @  26.12.2007,  09:47 Найти цитируемый пост)
перестановка элементов..... как?

Код

for(i=0;i<n/2;i++)
{
  int tmp=mas[i];
  mas[i]=mas[n-1-i];
  mas[n-1-i]=tmp;
}


Автор: papam 26.12.2007, 11:09
Код


#include <iostream.h>

void main()
{
    const n = 10;    
    int a[n], i;


    for(i = 0; i < n; i++)
    {
        cout << "Input a[" << i<< "]:\t";
        cin >> a[i];                    
    }
                                        
    int *p = &a[n-1];                   
    
    while(p >= a)                      
    {                                 
        cout << *p << "\t";             
        p--;                            
    }                                 
    cout << "\n";
}



Автор: bsa 26.12.2007, 11:52
GodofChaos, подключи #include <algorithm> и используй операцию std::swap(mas[0], mas[i]).

Автор: GodofChaos 26.12.2007, 12:56
Цитата(dumb @ 26.12.2007,  10:47)
Цитата(GodofChaos @  26.12.2007,  09:47 Найти цитируемый пост)
перестановка элементов..... как?

Код

for(i=0;i<n/2;i++)
{
  int tmp=mas[i];
  mas[i]=mas[n-1-i];
  mas[n-1-i]=tmp;
}

тогда ещё один вопросик...

а как вывести на экран этот массив с переставленными элементами

=( .. туплю... уже мой моск разрывается.... от этих задач....

Автор: Lazin 26.12.2007, 13:12
Код

for(i=0;i<n;i++)
{
  std::cout << mas[i] << std::endl;
}


Добавлено через 46 секунд
это выведет на консоль, а как на экран я не знаю....
может кто подскажет как это сделать)))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)