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

Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.94
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
15.03.2011, 23:34     Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке. #1
Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2011, 23:34     Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке.
Посмотрите здесь:

Array7°. Дан массив размера N. Вывести его элементы в обратном порядке. C++
Дан массив целых чисел. Записать его элементы в обратном порядке. C++
Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами C++
Дан одномерный массив. Не используя других массивов, переставить его элементы в обратном порядке C++
Дан массив размера 10. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2911 / 1340 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
15.03.2011, 23:44     Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке. #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
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  int array_size = 5 + rand() % 3;
  int *array = (int*)malloc(sizeof(int) * array_size);
  int i;
 
  for (i = 0; i < array_size; ++i)
    printf("%4d", array[i] = rand() % 9 + 1);
  printf("\n");
 
  for (i = 0; i < array_size / 2; ++i) {
    int swap_value = array[i];
    array[i] = array[array_size - i - 1];
    array[array_size - i - 1] = swap_value;
  }
 
  for (i = 0; i < array_size; ++i)
    printf("%4d", array[i]);
  printf("\n");
 
  free(array);
  return 0;
}
IrineK
Заблокирован
15.03.2011, 23:46     Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке. #3
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
32
#include <iostream>
#include <time.h>
#define N 11
using namespace std;
 
int main()
{
int i, A[N], cur;
srand(time(NULL));
//заполнение массива числами от 1 до 10
cout<<"Original array:\n";
for(i=0;i<N;i++)
{   A[i] = rand()%10+1;
    cout<<A[i]<<"  ";
}
 
//перестановка
for(i=0;i<N/2;i++)
{   cur = A[i];
    A[i] = A[N-1-i];
    A[N-1-i] = cur;
}
 
//вывод результатов
cout<<"\n\nArray after processing:\n";
for(i=0;i<N;i++)
    cout<<A[i]<<"  ";
 
    
cin.get();
return 0;
}
Airzi
-3 / 0 / 0
Регистрация: 02.03.2011
Сообщений: 32
04.05.2011, 14:07  [ТС]     Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке. #4
спасибо огромное!
aminchok
2 / 2 / 0
Регистрация: 01.10.2013
Сообщений: 39
17.03.2014, 19:11     Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке. #5
C++
1
2
3
4
5
6
//перестановка
for(i=0;i<N/2;i++) // идем до середины массива
{   cur = A[i]; // запоминаем элемент из начала
    A[i] = A[N-1-i]; // на его места вставляем элемеент из хвоста
    A[N-1-i] = cur; // в хвост вставляем запомненный
}

Можете пожалуйста поподробней объяснить этот кусок программы?
IrineK
Заблокирован
17.03.2014, 19:19     Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке. #6
A[i] - элементы, которые перебираются сначала до середины (в данном случае A[0], A[1]...A[4])
A[N-1-i] - элементы, которые перебираются с конца к середине (в данном случае A[10], A[9]...A[6])

И тогда меняются:
A[0] с A[10]
A[1] с A[9]
A[2] с A[8]
A[3] с A[7]
A[4] с A[6]
Середину - A[5] - не трогаем.
Yandex
Объявления
17.03.2014, 19:19     Дан одномерный массив.Не используя других массивов переставить его элементы в обратном порядке.
Ответ Создать тему
Опции темы

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