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

Сдвинуть все элементы последовательности циклически на k позиций влево - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
nik77714
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 4
14.03.2011, 19:43     Сдвинуть все элементы последовательности циклически на k позиций влево #1
1. Дано целое число. Если число отрицательное, то необходимо вывести все четные числа, начиная со введенного до -2. Если число положительное, то необходимо вывести все нечетные числа, начиная с этого числа и заканчивая его квадратом.

2. Дано 100 вещественных чисел. Вычислить разность между максимальным и минимальным из них.

3. 27. Дана последовательность из m вещественных чисел. Найти количество элементов, которые больше своих соседей (левого: an > an-1 и правого: an>an+1).

4. Дана последовательность из n вещественных чисел. Сдвинуть все элементы последовательности циклически на k позиций влево. Например: 12345678 – на три позиции влево -> 45678123

5. Дана последовательность из n действительных чисел. Получить числа b1,...,bn, где bi - среднее арифметическое всех элементов исходной последовательности, кроме i - того элемента.


Заранее спасибо за любую помощь!

 Комментарий модератора 
Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержание.


Добавлено через 4 минуты
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
#include <iostream.h>
#include <process.h>
#include <conio.h>
int main()
{
clrscr();
int a[10],i,j,k,tmp,n;
cout<<"vvedite n:";
cin>>n;
for(i=0;i<n;i++)
    {
    cout<<"Vvedite"<<i<<"eleement:";
    cin>>a[i];
    }
cout<<"Vvedite k:";
cin>>k;
for(i=0;i<k;i++)
    {
    for(j=n-1;j>=0;j--)
        {
        if(j==n-1)
        tmp=a[n-1];
        else
        a[j+1]=a[j];
        }
    a[0]=tmp;
    }
cout<<"result:";
for(i=0;i<n;i++)
    {
    cout<<a[i]<<' ';
    }
cout<<endl;
system("pause");
return 0;
}
Это четвертое задание но проблема в том что сдвиг идет вправо как переделать на левый?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2011, 19:43     Сдвинуть все элементы последовательности циклически на k позиций влево
Посмотрите здесь:

Сдвинуть элементы массива циклически на n позиций вправо. C++
Сдвинуть циклически элементы одномерного массива на k позиций влево C++
Все элементы массива X(30) циклически сдвинуть на n позиций влево C++
Указатели: сдвинуть элементы циклически на 1 позицию влево C++
Одномерный массив. Сдвинуть элементы циклически на n позиций влево C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
14.03.2011, 20:16     Сдвинуть все элементы последовательности циклически на k позиций влево #2
Ну вот как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
//......
cout<<"Vvedite k:";
cin>>k;
for(i = 0; i < k; i++)
{
    tmp = a[0];
    for(j = 0; j < n - 1; j++)
        a[j] = a[j + 1];
    a[n - 1] = tmp;
}
cout<<"result:";
//........
nik77714
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 4
15.03.2011, 12:40  [ТС]     Сдвинуть все элементы последовательности циклически на k позиций влево #3
uggway спасибо!

Добавлено через 15 часов 58 минут
Для задания №2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream.h>
#include <process.h>
#include <conio.h>
int main()
{
clrscr();
int a[10],i,n;
cout<<"vvedite n:";
cin>>n;
for(i=0;i<n;i++)
    {
    cout<<a[i]<<' ';
    }
cout<<endl;
system("pause");
return 0;
}
Задаю массив, нужен блок для нахождения max и min этого массива
если возможно то несколько вариантов (для самообучения)
Reee
 Аватар для Reee
21 / 21 / 1
Регистрация: 21.09.2010
Сообщений: 65
15.03.2011, 13:05     Сдвинуть все элементы последовательности циклически на k позиций влево #4
C++
1
2
3
4
5
6
7
8
9
10
... float max=a[0], min=a[0];
    for(int i=0; i<n;i++)
    {
        if(a[i]>max)
            max=a[i];
        if(a[i]<min)
            min=a[i];
    }
    cout<<max-min;
...
Добавлено через 12 минут
#2
C++
1
2
3
4
5
6
7
8
9
10
...
int ax=0;
    for(int i=1;i<n-1; i++)
        if(a[i]>a[i-1] && a[i]>a[i+1])
        {
            cout<<a[i]<<" ";
            ax++;
        }
cout<<ax;
...
nik77714
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 4
15.03.2011, 13:27  [ТС]     Сдвинуть все элементы последовательности циклически на k позиций влево #5
Цитата Сообщение от Reee Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
... float max=a[0], min=a[0];
    for(int i=0; i<n;i++)
    {
        if(a[i]>max)
            max=a[i];
        if(a[i]<min)
            min=a[i];
    }
    cout<<max-min;
...
Добавлено через 12 минут
#2
C++
1
2
3
4
5
6
7
8
9
10
...
int ax=0;
    for(int i=1;i<n-1; i++)
        if(a[i]>a[i-1] && a[i]>a[i+1])
        {
            cout<<a[i]<<" ";
            ax++;
        }
cout<<ax;
...
сапсибо попробую оба! только несовсем понимаю зачем здесь "ax" (из второго блока) ((((
Reee
 Аватар для Reee
21 / 21 / 1
Регистрация: 21.09.2010
Сообщений: 65
15.03.2011, 13:30     Сдвинуть все элементы последовательности циклически на k позиций влево #6
Цитата Сообщение от nik77714 Посмотреть сообщение
Найти количество элементов, которые больше своих соседей
ax это их количество.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2011, 13:53     Сдвинуть все элементы последовательности циклически на k позиций влево
Еще ссылки по теме:

Элементы линейного массива сдвинуть циклически на две позиции влево C++
элементы вещественного массива сдвинуть на k позиций влево C++
Одномерный массив, Сдвинуть элементы массива циклически на n позиций вправо C++

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

Или воспользуйтесь поиском по форуму:
nik77714
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 4
15.03.2011, 13:53  [ТС]     Сдвинуть все элементы последовательности циклически на k позиций влево #7
Цитата Сообщение от Reee Посмотреть сообщение
ax это их количество.
аа понял! еще раз спасибо!!
Yandex
Объявления
15.03.2011, 13:53     Сдвинуть все элементы последовательности циклически на k позиций влево
Ответ Создать тему
Опции темы

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