Упражнения на C: поворот массива на N позиций
Массив C: упражнение 39 с раствором
Напишите программу на C, чтобы вращать массив на N позиций.
NB. Размер первого массива равен (m + n), но заполнены только первые m мест, остальные остаются пустыми. Второй массив имеет размер, равный n.
Иллюстрированная презентация:
Пример решения:
Код C:
#include <stdio.h>
void shiftArr1Pos(int *arr1, int arrSize)
{
int i, temp;
temp = arr1[0];
for(i = 0; i < arrSize-1; i++)
{
arr1[i] = arr1[i+1];
}
arr1[i] = temp;
}
void arr1Rotate(int *arr1, int arrSize, int rotFrom)
{
int i;
for(i = 0; i < rotFrom; i++)
{
shiftArr1Pos(arr1, arrSize);
}
return;
}
int main()
{
int arr1[] = {0,3,6,9,12,14,18,20,22,25,27};
int ctr = sizeof(arr1)/sizeof(arr1[0]);
int i;
//---------- print original array ------------------------
printf("The given array is : ");
for(i = 0; i < ctr; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
//---------- print the values from 4th position ------------------------
printf("From 4th position the values of the array are : ");
for(i = 4; i < ctr; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
//---------- print the values before 4th position ------------------------
printf("Before 4th position the values of the array are : ");
for(i = 0; i < 4; i++)
{
printf("%d ", arr1[i]);
}
printf("\n");
//------------ after rotating the array --------------------
arr1Rotate(arr1, ctr, 4);
printf("\nAfter rotating from 4th position the array is: \n");
for(i = 0; i<ctr; i++)
{
printf("%d ", arr1[i]);
}
return 0;
}
Пример вывода:
Данный массив: 0 3 6 9 12 14 18 20 22 25 27 С 4-й позиции значения массива: 12 14 18 20 22 25 27 Перед 4-й позицией значения массива: 0 3 6 9 После поворота с 4-й позиции массив выглядит так: 12 14 18 20 22 25 27 0 3 6 9
Блок - схема:
Редактор кода программирования C:
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Написать программу на C для объединения одного отсортированного массива в другой отсортированный массив.
Далее: Напишите программу на C, чтобы найти потолок в отсортированном массиве.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code