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

Перемещение масива - C++

Восстановить пароль Регистрация
 
PunkRoker44
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 29
07.09.2012, 21:10     Перемещение масива #1
НУЖНО сделать. Перемещение указанного кол-ва элементов из конца в начало.
Уже ЕСТЬ. программа делает перемещение указанного кол-ва элементов из начала в конец.
как я понял нужно изменить что-то в цикле for, переделайте пожалуйста.Спасибо.
ПРИМЕЧАНИЕ: Нужно написать на С++ borland!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
 
 
void main (void)
{
  int a[20],i,n,k=0,b,j;
  clrscr();
  cout<<"Введи размер массива и кол-во перемещаемых элементов ";
  cin>>n>>k;
  randomize();
  for(i=0;i<n;i++)
   {
    a[i]=random(50)-25;
    cout<<a[i]<<" ";
   }
  for (j=1;j<=k;j++)
  {
   b=a[n-1]; 
   for(i=0;i<n+1;i++)
    a[i]=a[i-1];
   a[n+1]=b;
  }
 cout<<"\nПолученный массив\n";
  for(i=0;i<n;i++)
    cout<<a[i]<<" ";
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2012, 21:10     Перемещение масива
Посмотрите здесь:

C++ формирование масива
Элементы масива C++
индекс масива C++
Из масива удалить числа C++
C++ Игнорирование елемента масива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
08.09.2012, 10:18     Перемещение масива #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <memory.h>
 
using namespace std;
 
short rnd_fill() { return rand() % 50 - 25; }
void print(short x) { printf("%3d ", x); }
 
int main () {
    system("cls");
    unsigned n, k;
    cout << "Enter the array size and the count of moving elements:\n";
    cin >> n >> k;
    short* a = new short[n];
    short* m = new short[k];
    srand((int)time(NULL));
    generate(a, a + n, rnd_fill);
    for_each(a, a + n, print);
    memcpy(m, a + n - k, k * sizeof(short));
    memmove(a + k, a, (n - k) * sizeof(short));
    memcpy(a, m, k * sizeof(short));
    delete[ ] m;
    cout << "\nResulting array:\n";
    for_each(a, a + n, print);
    delete[ ] a;
    cout << endl;
}
Под Borland подстроите сами. Скорее всего, и так будет работать.
PunkRoker44
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 29
13.09.2012, 19:35  [ТС]     Перемещение масива #3
нужно немного поменять программу в цикле,а не все процедуры функции операторы и т д
PunkRoker44
1 / 1 / 0
Регистрация: 23.08.2012
Сообщений: 29
19.09.2012, 20:30  [ТС]     Перемещение масива #4
Хэлп...
Fler
207 / 209 / 9
Регистрация: 20.12.2011
Сообщений: 635
19.09.2012, 20:47     Перемещение масива #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
 
 
void main (void)
{
  int a[20],i,n,k=0,b,j;
  clrscr();
  cout<<"Ââåäè Г°Г*çìåð Г¬Г*Г±Г±ГЁГўГ* ГЁ êîë-ГўГ® ïåðåìåùГ*åìûõ ýëåìåГ*òîâ ";
  cin>>n>>k;
  randomize();
  for(i=0;i<n;i++)
   {
    a[i]=random(50)-25;
    cout<<a[i]<<" ";
   }
  for (j=0;j!=k;j++)
  {
   b=a[n-1]; 
   for(i=n-1;i!=0;i--)
    a[i]=a[i-1];
   a[0]=b;
  }
 cout<<"\nÏîëó÷åГ*Г*ûé Г¬Г*Г±Г±ГЁГў\n";
  for(i=0;i<n;i++)
    cout<<a[i]<<" ";
}
Добавлено через 1 минуту
P.S. в Вашем примере какой-то бред написан, и это явно не перемещение из начала в конец
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
19.09.2012, 21:16     Перемещение масива #6
Не надо забывать еще про стандартные алгоритмы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
 
    int arr[] = {2, 4, 2, 0, 5, 10, 7, 3, 7, 1, 4, 7, 6, 1, 4, -8}; 
    size_t size = sizeof arr/sizeof (int);
    cout<<"Результат до:    ";
    for (int n: arr) cout<<n<<" ";
    cout<<endl;
    cout<<"\nНа сколько елементов передвинуть массив(+ влево, - вправо):  ";
    int rot;
    cin>>rot;
    if (rot>0)
        rotate(arr, arr+rot, arr+size);
    else
        rotate(arr, arr+size+rot, arr+size);
    cout<<"\n\nРезультат после: ";
    for (int n: arr) cout<<n<<" ";
    cout<<endl<<endl;;
 
    system("pause");
    return 0;
}
Yandex
Объявления
19.09.2012, 21:16     Перемещение масива
Ответ Создать тему
Опции темы

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