w3resource

C Exercises: Rearrange an array such that arr[i]=i

C Array: Exercise-101 with Solution

Write a program in C to rearrange an array such that arr[i]=i.

N.B.: Given array contains N elements, from 0 to N – 1. All elements within the range may not be present in the array. There will be -1 if an element within the range is not present in the array.

Sample Solution:

C Code:

#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]); 
} 

Sample Output:

The given array is:  
2  5  -1  6  -1  8  7  -1  9  1  
The new array is: -1  1  2  -1  -1  5  6  7  8  9  

Pictorial Presentation:

C Exercises: Rearrange an array such that arr[i]=i

Flowchart:

Flowchart:  Rearrange an array such that arr[i]=i

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a program in C to return the number of clumps(a series of 2 or more adjacent elements of the same value) in a given array.
Next: Write a program in C to rearrange an array in such an order that– smallest, largest, 2nd smallest, 2nd largest and on.



Inviting useful, relevant, well-written and unique guest posts