кодесурса
«C

Упражнения на C: поворот массива на N позиций

script1adsense2code
script1adsense3code

Массив C: упражнение 39 с раствором

Напишите программу на C, чтобы вращать массив на N позиций.
NB. Размер первого массива равен (m + n), но заполнены только первые m мест, остальные остаются пустыми. Второй массив имеет размер, равный n.

Иллюстрированная презентация:

«C

Пример решения:

Код 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code