![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.11.2010
Сообщений: 11
|
![]()
Задан целочисленный массив размера N. Поменять местами серию с минимальной длиной с последней серией в массиве. Если минимальных серий несколько, то только первую из них.
NOY
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 28.11.2010
Сообщений: 11
|
![]()
/*********************************** *********************************** ******
меняет местами первую и последнюю серии в массиве. РАБОТАЕТ *********************************** *********************************** ******/ #include <stdio.h> int main(int argc, char *argv[]) { unsigned int n; printf("Enter size of array: "); scanf("%u",&n); int arr[n]; for (int i = 0; i < n; i++) { printf("Enter arr[%u]: ", i); scanf(" %d",&arr[i]); } unsigned int serie1l = 1; //ТУТ ВРОДЕ НУЖНО ВСТАВИТЬ ТО КАК ОН ОПРЕДЕЛЯЕТ НАИМЕНЬШУЮ СЕССИЮ // определяем длину первой серии unsigned int i = 1; while (i < n) { if (arr[i] == arr[0]) { serie1l++; } else { break; } i++; } // индекс начала последней серии (длина серии - длина массива - индекс начала) unsigned int serie2i = n-1; i = n-2; while (i >=0) { if (arr[i] == arr[n-1]) { serie2i--; } else { break; } i--; } printf("Length of first serie = %u, index of last serie = %u \n", serie1l, serie2i); // поменять местами серии (возможно разной длины) // длина массива меняться не должна // вычисляем минимальную из длин серий чтобы исключить потерю данных unsigned int minL = (serie1l > (n - serie2i))? n - serie2i : serie1l; for (int j=0; j < (minL); j++) { int tmp = arr[j + serie2i]; arr[j + serie2i] = arr[j]; arr[j] = tmp; } for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; }
NOY
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Целочисленная матрица (язык Pelles C) | Kotik Wasil | Помощь студентам | 0 | 12.12.2010 20:42 |
Ряды (язык Pelles C) | Kotik Wasil | Помощь студентам | 2 | 07.12.2010 21:02 |
Язык Pelles C Массивы | Kotik Wasil | Помощь студентам | 0 | 28.11.2010 21:37 |