اكتب برنامج بلغة 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>intarrayRearrange(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;}}}}intmain(){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]);}
C
success
تم تقديم إجابتك بنجاح
success
تم تعديل الإجابة، سيتم نشرها بعد مراجعة الإدارة