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

сдвиг массива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить программу, которая определяет список символов... http://www.cyberforum.ru/cpp-beginners/thread392574.html
Дан текстовый файл, содержащий N строк (1-N<=1000). Составить программу, которая определяет список символов, одновременно встречающихся во всех N строках. Запрещено создавать темы с бессмысленными...
C++ как можно сделать это? если вообще возможно (не задача) есть задача, на двумерный массив... вывел массив 5х5 с рандомными числами, нужно найти числа локального минимума, т.е. чтоб число было меньше всех его соседей. можно ли читать весь массив(всю... http://www.cyberforum.ru/cpp-beginners/thread392566.html
C++ Программа
Форумчане столкнулся с проблемой.Нужно создать программу для курсовой на тему несанкционированный доступ кто что посоветует ?
Помогите пожалуйста с коэффициентами C++
int i; IntNum = m_len*2; CString str; CRect rData; float dx = (float)rData.Width()/(m_len-1); // определяем коэффициенты для вывода чисел при рисовании float dy =...
C++ Работа с *.doc и *.docx http://www.cyberforum.ru/cpp-beginners/thread392554.html
Здравствуйте. Как можно напрямую работать с файлами *.doc и *.docx вне зависимости от того, установлен ли Word или нет? Честно гуглил, толку ноль. Спасибо.
C++ задача на массивы здравствуйте, не могли бы помочь есть задание написать функцию которая сортирует по убыванию массив( сортировка пузырьком) получился такой код #include <iostream> #include <stdlib.h> using... подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
27.11.2011, 07:15
Цитата Сообщение от лизи Посмотреть сообщение
сдвинуть все элементы массива влево так что бы на первой позиции оказался минимальный элемент
при этом использовать дополнительные массивы нельзя
Очевидно, что ваша задача решается в два приема. Сначала вы находите минимальный элемент в массиве, а затем копируете все элементы, начиная с минимального элемента в начало массива.
Сразу же скажу, что копирование можно выполнить с помощью стандартной функции memcpy, которая объявлена в заголовочном файле <string.h>. Вопрос только упирается в то: разрешается ли вам использовать эту функцию, или требуется, чтобы вы самостоятельно выполнили копирование.

Давайте решать вашу задачу по порядку. Сначала напишем функцию, которая ищет минимальный элемент в массиве. Это функция будет возвращать индекс первого минимального элемента (в массиве может быть несколько минимальных элементов).

C++
1
2
3
4
5
6
7
8
9
10
11
12
unsigned int min_element( int a[], unsigned int n )
{
   unsigned int min = 0;
   unsigned int i;
 
   for ( i = 1; i < n; i++ )
   {
      if ( a[i] < a[min] ) min = i;
   }
 
   return ( min );
}
Итак, с помощью этой функции вы найдете индекс первого минимального элемента в массиве. Теперь вам надо скопировать элементы массива в его начало, начиная с минимума. Напишем соответствующую функцию

C++
1
2
3
4
5
6
void copy( int *dest, const int *source, unsigned int n )
{
   unsigned int i;
 
   for ( i = 0; i < n; i++ ) dest[i] = source[i];
}
Как пользоваться этими функциями. Допустим у вас есть целочисленный массив размерностью N: int a[N];

Тогда сначала ищем индекс минимального элемента:

C++
1
unsigned int min = min_element( a, N );
Затем осуществляем сдвиг элементов

C++
1
copy( a, &a[min], N - min );
Ву а ля, как говорят французы! Вам лишь осталось все это объединить вместе в одной программе.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru