مصفوفة مُعطاة بالحجم n بحيث يكون كل عنصر في النطاق من 0 إلى n-1. اكتب برنامج بلغة C لإعادة ترتيب المصفوفة المحددة

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

مصفوفة مُعطاة بالحجم n بحيث يكون كل عنصر في النطاق من 0 إلى n-1. اكتب برنامج بلغة C لإعادة ترتيب المصفوفة المحددة بحيث :

[ i ]arr تصبح arr[arr [ i ] ]

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

The Original array is 
2  1  4  3  0  
The modified array is: 
4  1  0  3  2

الأجوبة

/*Given an array of size n such that every element is in the range from 0 to n-1. Write a program in C to rearrange the given array so that arr[i] becomes arr[arr[i]]*/

#include<stdio.h> 
  
void arrayArrange(int arr1[], int n) 
{ 
    for (int i=0; i < n; i++) 
        arr1[i] += (arr1[arr1[i]]%n)*n; 
  
    for (int i=0; i<n; i++) 
        arr1[i] /= n; 
} 
  
void arrayPrinting (int arr1[], int n) 
{ 
    for (int i = 0; i < n; i++) 
        printf("%d  ", arr1[i]); 
    printf("\n"); 
} 
  
int main() 
{ 
    int arr1[] = {2, 1, 4, 3, 0}; 
    int n = sizeof(arr1)/sizeof(arr1[0]); 
  
    printf("The Original array is \n"); 
    arrayPrinting(arr1, n); 
  
    arrayArrange(arr1, n); 
  
    printf("The modified array is: \n"); 
    arrayPrinting(arr1, n); 
    return 0; 
}
هل كان المحتوى مفيد؟

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

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