С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
z1odey
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 11
1

Если К меньше N, изменить порядок следования элементов в исходном массиве на обратный

20.11.2010, 16:56. Просмотров 720. Ответов 9
Метки нет (Все метки)

Помогите решить эту задачу.

Дан массив действительных чисел размером N и целое число К. Если К меньше N, изменить порядок следования элементов в исходном массиве на обратный порядок отдельно до и отдельно после К-го элемента массива. Если K больше или равно N, то создать новый массив, не включив в него из исходного массива первый и последний элемент.

Заранее спасибо)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2010, 16:56
Ответы с готовыми решениями:

Изменить порядок следования элементов в массиве на обратный
Здравствуйте. Надо написать функцию, но почему-то он у меня вылетает. Что я...

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

Изменить порядок следования элементов массива на обратный
Привет всем! Нужна помощь по решению задачи на языке С++. Принципиально я знаю...

Изменить порядок следования элементов строки матрицы на обратный
Дана вещественная прямоугольная матрица. Если элемент строки, расположенный на...

Составить программу, которая меняет порядок следования элементов в массиве на обратный для линейных таблиц Х[12] и Y[10]
Составить программу, которая меняет порядок следования элементов в массиве на...

9
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2010, 18:52 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int ms[n],ms2[n-2],i,j,k;
 
if (k<n)
{ for (i=0, j=k; i<j; i++,j--)
     // zamena ms[i] - ms[j]
 
   for (i=k, j=n-1; i<j; i++, j--)
      // zamena ms[i] - ms[j]
 
}
 
else 
{  for (i=1;i<n-1;i++)
      ms2[i-1]=ms[i];
}
1
z1odey
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 11
20.11.2010, 19:11  [ТС] 3
Не работает кусок из-за не правильно составленного цикла.
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2010, 19:38 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int ms[n],ms2[n-2],i,j,k;
 
if (k<n)
{ for (i=0, j=k-1; i<j; i++,j--)
     // zamena ms[i] - ms[j]
 
   for (i=k, j=n-1; i<j; i++, j--)
      // zamena ms[i] - ms[j]
 
}
 
else 
{  for (i=1;i<n-1;i++)
      ms2[i-1]=ms[i];
}
попробуй так
0
z1odey
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 11
20.11.2010, 19:42  [ТС] 5
Он не пропускает два for в одних {}
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2010, 20:02 6
z1odey, выложи свой полный код
ты где-то допустил ошибку!!!
0
z1odey
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 11
20.11.2010, 20:07  [ТС] 7
копировал, он подчеркивает второй for
0
almazsr
233 / 170 / 25
Регистрация: 13.11.2010
Сообщений: 425
20.11.2010, 20:15 8
; после операторов. После fora
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
20.11.2010, 20:19 9
almazsr, ты о чем вообще
я не дописал код (в комментариях указал что надо дописать)

z1odey, выложить свой полный код (с библиотеками) чтобы я проверил слабо??? Вы что-то не правильно доделали
0
Unforgiven_00
60 / 60 / 17
Регистрация: 12.10.2010
Сообщений: 129
20.11.2010, 20:29 10
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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 <iostream>
#include <algorithm>
using namespace std;
 
void main()
{
    const int n = 10;
    int a[n] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    cout << "Enter K: " ;
    int k;
    cin >> k;
    if(k<n)
    {
        reverse(a, a+k);
        reverse(a+k, a+n);
        for(int i=0; i<n; i++)
            cout << a[i] << ' ';
    }
    else
    {
        int b[n-2];
        copy(a+1, a+n-1, b);
        for(int i=0; i<n-2; i++)
            cout << b[i] << ' ';
    }
    system("pause");
}
1
20.11.2010, 20:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2010, 20:29

Изменить порядок следования элементов в массиве
изменить порядок следования элементов в массиве так чтобы сначало располагались...

Изменить порядок следования элементов в массиве используя указатели
Вот что есть, почему не работает правильно не понимаю, подскажите плиз) #...

Изменить порядок следования слов в строке на обратный
Помогите, пожалуйста, написать функцию, которая изменяет порядок следования...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru