اكتب برنامج بلغة C لإعادة ترتيب مصفوفة بحيث يكون arr [i] = i

  • برمجة
  • برمجة سي c

اكتب برنامج بلغة C لإعادة ترتيب مصفوفة بحيث يكون arr [i] = i

ملاحظة : تحتوي المصفوفة المعطاة على عناصر N ، من 0 إلى N - 1. قد لا تكون جميع العناصر داخل النطاق موجودة في المصفوفة. سيكون هناك -1 إذا كان عنصر داخل النطاق غير موجود في المصفوفة

الخرج المتوقع :

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

الأجوبة

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

#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]); 
}
هل كان المحتوى مفيد؟

تبحث عن مدرس اونلاين؟

محتاج مساعدة باختيار المدرس الافضل؟ تواصل مع فريقنا الان لمساعدتك بتأمين افضل مدرس
ماهو التخصص الذي تبحث عنه؟
اكتب هنا...