Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
9 / 9 / 2
Регистрация: 02.04.2015
Сообщений: 197
1

Переставить в обратном порядке элементы массива

20.04.2015, 19:35. Показов 4277. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем. У меня возникла проблема с этим заданием:
Дан массив A размера N и целые числа K и L (1 ≤ K < L ≤ N). Переставить в обратном порядке элементы массива,расположенные между элементами AK и AL, не включая эти элементы.
Вот что у меня получилось
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#pragma warning (disable:4996)
#define N 100
void FillArray(int A[N], int n)
{
    for (int i = 1; i <=n; i++)
    {
        scanf("%d", &A[i]);
    }
}
void ChangeArray(int A[N], int n,int k, int l)
{
    int p;
    for (int i = 1; i <= n; i++)
    {
        if (k<=i && l>=i)
        {
            p=A[i];
            A[i] = A[n - i];
            A[n - i]=p;
        }
    }
}
void PrintArray(int A[N], int n)
{
    for (int i = 1; i <= n; i++)
    {
        printf("%d", A[i]);
    }
}
int main()
{
    setlocale(0, "");
    int A[N],n,k,l;
    printf("введите размер массива и числа к,l\n");
    scanf("%d%d%d", &n, &k, &l);
    if (1 <= k && k < l && l <= n)
    {
        printf("введите элементы массива\n");
        FillArray(A, n);
        ChangeArray(A, n,k,l);
        printf("конечный массив\n");
        PrintArray(A, n);
    }
    else printf("неверные значения l и k\n");
    system("pause");
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2015, 19:35
Ответы с готовыми решениями:

Переставить элементы массива в обратном порядке
int *ans = new int; for (int i = counter - 1; i &gt;= 0; i--) for (int j = 0; j &lt; counter; j++)...

Переставить в обратном порядке элементы массива
Помогите пожалуйста Дан одномерный массив из 15 элементов. Переставить в обратном порядке: а)...

Переставить в обратном порядке элементы массива
Дан массив А из N целых чисел и целые значения K и L(1&lt;K&lt;Л&lt;N).Переставить в обратном порядке его...

Переставить в обратном порядке элементы массива
Задан одномерный массив из 15 элементов. Переставить в обратном порядке: элементы расположены между...

4
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
20.04.2015, 21:12 2
Лучший ответ Сообщение было отмечено mracobes9 как решение

Решение

mracobes9, твой ChangeArray переставляет совсем не то. Возьми небольшой массив и ручками смоделируй его работу.
А правильней так:
C++
1
2
3
4
5
6
7
8
9
void ChangeArray(int A[N], int n,int k, int l)
{
  int p;
  for(int i=1; i < (l - k)/2;  i++) {
    p = A[k+i];
    A[k+i] = A[l-i];
    A[l-i] = A[k+i];
  }
}
Не проверял. Уточни границы цикла.
2
9 / 9 / 2
Регистрация: 02.04.2015
Сообщений: 197
20.04.2015, 21:55  [ТС] 3
Байт, проверил. Вообще ничего не переставляет. Выдает просто исходный массив

Добавлено через 27 минут
Байт, а хотя подожди .я не тот случай проверил

Добавлено через 6 минут
Байт, у тебя была ошибка в 7 строке
Цитата Сообщение от Байт Посмотреть сообщение
A[l-i] = A[k+i];
. Вместо A[k+i] нужно было p ставить
1
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
20.04.2015, 21:57 4
Цитата Сообщение от mracobes9 Посмотреть сообщение
Вместо A[k+i] нужно было p ставить
Да, конечно. Спасибо, что поправил.
0
9 / 9 / 2
Регистрация: 02.04.2015
Сообщений: 197
20.04.2015, 21:58  [ТС] 5
Байт, тебе спасибо за помощь
0
20.04.2015, 21:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2015, 21:58
Помогаю со студенческими работами здесь

Переставить элементы массива в обратном порядке
Необходимо написать программу, которая переворачивает массив елементов.

Переставить в обратном порядке элементы массива
Здравствуйте! Помогите, пожалуйста, найти и исправить ошибки в решении задачи: Дан массив...

Переставить в обратном порядке элементы массива
Array72. Дан массив A размера N и целые числа K и L (1 ≤ K &lt; L ≤ N). Переставить в обратном порядке...

Переставить элементы массива в обратном порядке
Напишите программу, которая переставляет элементы массива в обратном порядке без использования...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru