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

Кольцевой сдвиг в массиве - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите найти ошибку в программе (класс комплексных чисел) http://www.cyberforum.ru/cpp-beginners/thread734390.html
1. Объявить класс по приведенному ниже заданию в соответствии с номером варианта и определить для него конструктор по умолчанию, конструктор инициализации и конструктор преобразования. 2. Определить...
C++ Найти минимальные элементы в столбцах массива Доброго времени суток! Задача такая: нужно вывести двумерный массив, найти столбцы, в которых есть одинаковые элементы, в этих столбцах найти минимальные элементы и из них сформировать одномерный... http://www.cyberforum.ru/cpp-beginners/thread734388.html
C++ Найти количество строк в максимальном множестве попарно непохожих строк заданной матрицы
Найти количество строк в максимальном множестве попарно непохожих строк заданной матрицы. #include <stdio.h> #define N 100 #define M 100 int i,j,k,t,l; void input (int a,int y, int u) { ...
Просмотр текстового файла C++
#include "stdafx.h" #include <iostream> #include <fstream> #include <string> #include <locale.h> #include <stdio.h> using namespace std;
C++ Найти номера строк и столбцов всех седловых точек матрицы http://www.cyberforum.ru/cpp-beginners/thread734380.html
Дана целочисленная прямоугольная матрица. Определить: — сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент; — номера строк и столбцов всех седловых точек матрицы....
C++ Содержимое матрицы размерности n x n повернуть на 90 по часовой стрелке вокруг центра симметрии матрицы. Исходная матрица вводится из файла Help me plz подробнее

Показать сообщение отдельно
Tecknogleb
0 / 0 / 0
Регистрация: 23.09.2012
Сообщений: 35

Кольцевой сдвиг в массиве - C++

16.12.2012, 21:01. Просмотров 508. Ответов 6
Метки (Все метки)

Объясните как работает и как примерно делать не понимаю сам((( нашел пример,но не знаю что делают некоторые переменные + некоторые моменты
у самого задание такое:Дан массив действительных чисел размером N и целое число К. Если в исходном массиве чисел больше чем К, то в исходном массиве выполнить кольцевой сдвиг его элементов так, чтобы первый максимальный элемент этого массива оказался на K-ом месте. Кольцевой сдвиг массива выполняется всеми его элементами так, что элементы “выталкиваемые” из массива в одну сторону занимают освободившиеся место с другой стороны. Если число К больше или равно числу элементов в исходном массиве, то создать новый массив, как копию исходного массива, имеющего в качестве первого элемента число K.
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>
#include <conio.h>
using namespace std;
 
 
void rotor(int *a,int k,int len)
{
    // Создаем и инициализиуем временный массив
    int *m=new int[len]; for(int i=0;i<10;i++) m[i]=0;
    //Копируем в него заднюю часть вращаемого
    memcpy(m,&a[k],sizeof(int)*(len-k));
    //Потом переднюю часть
    memcpy(&m[len-k],&a[0],sizeof(int)*(k));
    //И возвращаем модифицированное назад
    memcpy(a,m,sizeof(int)*(len));
    // убирая мусор
    delete[] m;
}
 
int a[10];
 
int _tmain(int argc,int _TCHAR,int *argv[])
{
    //Создаем массив
    for(int i=0;i<10;i++) 
        a[i]=i;
    for(int i=0;i<10;i++) 
        cout << a[i] << endl;
    // Вращаем его сдвигая первые три элемента
    rotor(&a[0],3,10);
    //Выводим массив
    for(int i=0;i<10;i++) 
        cout << a[i]<< endl;
    _getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru