кодесурса
«C

Упражнения на C: переставить массив так, чтобы arr [i] = i

script1adsense2code
script1adsense3code

Массив C: упражнение 101 с решением

Напишите программу на C, чтобы переставить массив таким образом, чтобы arr [i] = i.

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

Код C:

#include<stdio.h> 
  
int arrayRearrange(int arr1[], int l) 
{ 
    for (int i = 0; i < l; i++)  
    { 
        if (arr1[i] != -1 && arr1[i] != i)  
        { 
            int x = arr1[i]; 
            while (arr1[x] != -1 && arr1[x] != x) 
            { 
                int y = arr1[x]; 
                arr1[x] = x; 
                x = y; 
            } 
            arr1[x] = x; 
            if (arr1[i] != i)  
            { 
                arr1[i] = -1; 
            } 
        } 
    } 
} 
  
int main() 
{ 
    int arr1[] = { 2, 5, -1, 6, -1, 8, 7, -1, 9, 1 }; 
    int n = sizeof(arr1) / sizeof(arr1[0]);     
    int i = 0; 
   //------------- print original array ------------------	
	printf("The given array is:  \n");
	for(i = 0; i < n; i++)
		{
			printf("%d  ", arr1[i]);
		}
	printf("\n");
//-----------------------------------------------------------  	
	printf("The new array is: ");
    arrayRearrange(arr1, n); 
    for (int i = 0; i < n; i++) 
    printf("%d  ",arr1[i]); 
} 

Пример вывода:

 Данный массив:  
2 5 -1 6 -1 8 7 -1 9 1  
Новый массив: -1 1 2 -1 -1 5 6 7 8 9  

Блок - схема:

«Блок-схема:

Редактор кода программирования C:

Улучшите этот пример решения и опубликуйте свой код через Disqus.

Previous: написать программу на C, которая будет возвращать количество скоплений (ряд из 2 или более смежных элементов с одинаковым значением) в данном массиве.
Далее: Напишите программу на C, чтобы переставить массив в таком порядке, чтобы он был наименьшим, самым большим, вторым самым маленьким, вторым по величине и так далее.

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code