Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

تحديات برمجيةالتحدي الأول - حل التمرين الرابع بلغة C

المطلوب

أكتب برنامج يطلب من المستخدم إعطائه عدد يمثل عدد عناصر مصفوفة إسمها arr و يخزنه في متغير إسمه n.
ملاحظة: عدد عناصر المصفوفة يجب أن يكون أكبر من صفر.
بعدها ينشئ المصفوفة arr و يحدد أن عدد عناصرها هو العدد الذي أدخله المستخدم.
بعدها يطلب من المستخدم إدخال عدد صحيح لكل عنصر فيها.
بعدها يعرض للمستخدم جميع قيم عناصر المصفوفة التي قام هو بإدخالها مع وضع مسافة فارغة بين كل قيمتين.
في الأخير, يقوم بترتيب قيم عناصر المصفوفة من الأصغر إلى الأكبر و من ثم يعرضها له من جديد.


الحل بلغة C

#include <stdio.h>
#include <stdlib.h>

void main() {

    int n;
    int temp;
    int *arr;
    
    do {
        printf("Enter arr length: ");
        scanf("%d", &n);
    }
    while (n <= 0);
    
    arr = malloc(n * sizeof(int));
    
    for (int i = 0; i < n; i++)
    {
        printf("Enter arr[%d]: ", i);
        scanf("%d", &arr[i]);
    }
    
    printf("\nCurrent order\n");
    
    for (int i = 0; i < n; i++)
    {
        printf("%d ", arr[i]);
    }
    
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = i + 1; j < n; j++)
        {
            if (arr[j] < arr[i])
            {
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
    
    printf("\n\nAfter ascending order\n");
    
    for (int i = 0; i < n; i++)
    {
        printf("%d ", arr[i]);
    }

}

سنحصل على النتيجة التالية في حال تم إدخال نفس القيم التي تم تعليمها باللون الأصفر عند التشغيل.

Enter arr length: 5
Enter arr[0]: 7
Enter arr[1]: 3
Enter arr[2]: 1
Enter arr[3]: 6
Enter arr[4]: 4

Current order
7 3 1 6 4

After ascending order
1 3 4 6 7