اكتب برنامج بلغة C لتحويل المصفوفة بطريقة تضاعف قيمتها واستبدل الرقم التالي بالرقم 0 إذا كان العنصر الحالي والعنصر التالي متماثلان

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

اكتب برنامج بلغة C لتحويل المصفوفة بطريقة تضاعف قيمتها واستبدل الرقم التالي بالرقم 0 إذا كان العنصر الحالي والعنصر التالي متماثلان وأعد ترتيب المصفوفة بحيث يتم إزاحة جميع 0 إلى النهاية

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

The given array is:  0  3  3  3  0  0  7  7  0  9  
The new array is: 6  3  14  9  0  0  0  0  0  0

الأجوبة

/*Write a program in C to convert the array in such a way that double its value and replace the next number with 0 if current and next element are same and rearrange the array such that all 0's shifted to the end*/

#include<stdio.h> 
void ZerosAtEnd(int arr1[], int n) 
{ 
    int ctr = 0; 
    for (int i = 0; i < n; i++) 
        if (arr1[i] != 0) 
            arr1[ctr++] = arr1[i]; 
    while (ctr < n) 
        arr1[ctr++] = 0; 
} 
void updateArrayRearrange(int arr1[], int n) 
{ 
    if (n == 1) 
        return; 
    for (int i = 0; i < n - 1; i++) 
	{ 
        if ((arr1[i] != 0) && (arr1[i] == arr1[i + 1])) 
		{ 
            arr1[i] = 2 * arr1[i]; 
            arr1[i + 1] = 0; 
            i++; 
        } 
    } 
    ZerosAtEnd(arr1, n); 
} 
void ArrayPrinting(int arr1[], int n) 
{ 
    for (int i = 0; i < n; i++) 
        printf("%d  ",arr1[i]); 
} 
  
int main() 
{ 
    int arr1[] = { 0, 3, 3, 3, 0, 0, 7,7, 0, 9 }; 
    int n = sizeof(arr1) / sizeof(arr1[0]); 
    printf("The given array is:  "); 
    ArrayPrinting(arr1, n); 
    updateArrayRearrange(arr1, n); 
    printf("\nThe new array is: "); 
    ArrayPrinting(arr1, n); 
    return 0; 
}
هل كان المحتوى مفيد؟

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

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