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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AlDelta
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 12
#1

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

15.10.2009, 21:38. Просмотров 914. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста написать программу!!!понимаю что все должно быть оч легко, но... В С++:
1. Дан массив, состоящий из символов. Элементы массива циклически сдвинуть на k позиций влево.
2. Победителем соревнований объявляется тот спортсмен, у которого максимален наилучший результат по всем броскам. Таким образом, программа должна найти значение максимального элемента в данном массиве, а также его индексы (то есть номер спортсмена и номер попытки). Программа выводит значение максимального элемента, затем номер строки и номер столбца, в котором он встречается. Пример
Вход Выход
4 3 5
1 4 2 1 0
5 2 5
5 1 4
1 2 4
Если в массиве несколько максимальных элементов, то нужно вывести минимальный номер строки, в которой встречается такой элемент, а если в этой строке таких элементов несколько, то нужно вывести минимальный номер столбца. Не забудьте, что все строки и столбцы нумеруются с 0.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2009, 21:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Элементы массива циклически сдвинуть на k позиций влево (C++):

Все элементы массива X(30) циклически сдвинуть на n позиций влево - C++
Все элементы массива X(30) циклически сдвинуть на n позиций влево при помощи указателей

Сдвинуть циклически элементы одномерного массива на k позиций влево - C++
Тема и есть условие задачи... Сам же я застопорился на написании алгоритма сдвига :- #include <iostream.h> #include <math.h> int...

Одномерный массив. Сдвинуть элементы циклически на n позиций влево - C++
Ввести одномерный статический массив из k чисел. Сдвинуть элементы массива циклически на n позиций влево. #include <iostream> ...

Сдвинуть все элементы последовательности циклически на k позиций влево - C++
1. Дано целое число. Если число отрицательное, то необходимо вывести все четные числа, начиная со введенного до -2. Если число...

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

Одномерный массив, Сдвинуть элементы массива циклически на n позиций вправо - C++
#include <iostream> #include <iomanip> #include <math.h> #include <conio.h> using namespace std; int main() { int a,...

7
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
16.10.2009, 06:01 #2
чёт за спасибо сёдня народ импотентен, пробуй сам - что не получиться поправят. или за деньги на фрилансе
0
mamedovvms
2917 / 838 / 93
Регистрация: 30.04.2009
Сообщений: 2,627
16.10.2009, 07:21 #3
Цитата Сообщение от AlDelta Посмотреть сообщение
4 3 5
1 4 2 1 0
5 2 5
5 1 4
1 2 4
что то пример не сходится с условием, или я не так понял условие
0
AlDelta
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 12
16.10.2009, 14:45  [ТС] #4
Вход Выход
4 3 5
1 4 2 1 0
5 2 5
5 1 4
1 2 4

как-то так...
0
mamedovvms
2917 / 838 / 93
Регистрация: 30.04.2009
Сообщений: 2,627
16.10.2009, 14:48 #5
Цитата Сообщение от AlDelta Посмотреть сообщение
как-то так...
надо написать точно для данного случаю, это все таки вам надо
0
AlDelta
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 12
16.10.2009, 15:41  [ТС] #6
1. Дан массив, состоящий из символов. Элементы массива циклически сдвинуть на k позиций влево.

2. Победителем соревнований объявляется тот спортсмен, у которого максимален наилучший результат по всем броскам. Таким образом, программа должна найти значение максимального элемента в данном массиве, а также его индексы (то есть номер спортсмена и номер попытки). Программа выводит значение максимального элемента, затем номер строки и номер столбца, в котором он встречается. Пример
Вход Выход
4 3 5
1 4 2 1 0
5 2 5
5 1 4
1 2 4
Если в массиве несколько максимальных элементов, то нужно вывести минимальный номер строки, в которой встречается такой элемент, а если в этой строке таких элементов несколько, то нужно вывести минимальный номер столбца. Не забудьте, что все строки и столбцы нумеруются с 0.

вот все как в задании дано...

Добавлено через 1 минуту
опять пример сбился
Пример
Вход Выход
4 3 5
1 4 2 1 0
5 2 5
5 1 4
1 2 4

Добавлено через 1 минуту
Пример
Вход \\\ Выход
4 3 \\\ 5
1 4 2 \\\ 1 0
5 2 5
5 1 4
1 2 4
Если в массиве несколько максимальных элементов, то нужно вывести минимальный номер строки, в которой встречается такой элемент, а если в этой строке таких элементов несколько, то нужно вывести минимальный номер столбца. Не забудьте, что все строки и столбцы нумеруются с 0.
0
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
16.10.2009, 15:55 #7
давно экспериментировал
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Циклический сдвиг одномерного массива или строки
 
// итак, нужно преобразовать массив ab в bа. 
// Предположим, что у нас есть функция reverse, 
// переставляющая элементы некоторой части массива в 
// противоположном порядке. В исходном состоянии массив имеет 
// вид ab. Вызвав эту функцию для первой части, получим аrb 
// (прим. редактора:аr - это модифицированная часть a, к которой 
// применили фукнцию перестановки reverse). Затем вызовем ее для 
// второй части: получим аrbr. Затем вызовем функцию для всего 
// массива, что даст (аrbr)r, а это в точности соответствует bа. 
// Посмотрим, как будет такая функция действовать на массив abcdefgh, 
// который нужно сдвинуть влево на три элемента:
// псевдокод: Сдвиг через функцию перестановки reverse   ссылка
// reverse(0, i-1)   /* cba|defgh */
// reverse(i, n-1)   /* cba|hgfed */
// reverse(0, n-1)   /* defgh|abc */
 
#include <iostream>
#include <time.h>
 
 
#define   randomize() srand(time(NULL))
#define   SIZE        10
 
using namespace std;
void Reverse(int *begin, int *end)
{ 
    int temp;
    while (end>begin)
    {
        temp = *begin;
        *begin = *end;
        *end = temp;
        begin++; end--;
    }
} // end Reverse
 
int main()
{
    int A[SIZE];
    int i;
 
    for (i=SIZE; --i>=0;)
        A[i]=i; //rand()%10;
 
    cout<<"A"<<endl;     /// вывод
    for (i=0; i<SIZE; i++)
        cout<<A[i]<<' ';
    cout<<endl;
 
    //////////////////////////////////////////////////////////////////////////
    // сам циклический сдвиг на i элементов
    cout<<"number shift: "; cin>>i;
    Reverse(&A[0], &A[i-1]);
    Reverse(&A[i], &A[SIZE-1]);
    Reverse(&A[0], &A[SIZE-1]);
    //////////////////////////////////////////////////////////////////////////
 
    cout<<"revA"<<endl;     /// вывод
    for (i=0; i<SIZE; i++)
        cout<<A[i]<<' ';
 
    cout<<endl; system("PAUSE");
    return 0;
} // end main
1
AlDelta
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 12
16.10.2009, 16:55  [ТС] #8
ААА, огромное спасибо)))))
0
16.10.2009, 16:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2009, 16:55
Привет! Вот еще темы с ответами:

Элементы вещественного массива сдвинуть на k позиций влево - C++
Здравствуйте! Помогите, пожалуйста, с задачей: элементы вещественного массива сдвинуть на k позиций влево

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

Элементы линейного массива сдвинуть циклически на две позиции влево - C++
Дорогие форумчане помогите с переводом с pascal в C++ { of integer; i,j:integer; N:integer; Begin ClrScr; Repeat ...

Задан массив из k чисел. Сдвинуть элементы массива циклически на n позиций вправо - C++
помогите исправить..не сдвигает а местами меняет(( Задан массив из k чисел. Сдвинуть элементы массива циклически на n позиций вправо. ...


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

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

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