חזור לתיקייה: גליון 5

hw5q1

חיפוש בתיקיה
Ctrl K
לחץ כאן או הקש Ctrl K כדי לחפש בכל התיקיה

    hw5q1

    02340114

    מבוא למדמח מ

    רשימות הרצאה לקריאה בשבת

    hw5q1

    הופק מתוך תקיית התואר של שקד

    uni-folder.vercel.app

    hw5q1.c

    הערה (קובץ קוד)

    קובץ זה הוא קובץ קוד מסוג C.

    #include <stdio.h>
    #include <stdbool.h>
    #define NUM_PLATFORMS 3
    #define MAX_FARM_SIZE 1000
    
    bool shouldSwapCapybaras(int pop1, int pop2, int plat1, int plat2)
    {
        if (plat1 == plat2)
        {
            return pop1 < pop2;
        }
        return plat1 > plat2;
    }
    
    void swapCapybaras(int popularity[], int platform[], int i, int j)
    {
        int temp = popularity[i];
        popularity[i] = popularity[j];
        popularity[j] = temp;
        temp = platform[i];
        platform[i] = platform[j];
        platform[j] = temp;
    }
    
    void viralCapySort(int popularity[], int platform[], int n)
    {
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < (n - 1); j++)
            {
                if (shouldSwapCapybaras(
                    popularity[j], popularity[j + 1],
                    platform[j], platform[j+1]
                ))
                {
                    swapCapybaras(popularity, platform, j, j + 1);
                }
            }
        }
    }
    
    void input(int popularity[], int platform[], int *n)
    {
        scanf("%d", n);
        for (int i = 0; i < *n; i++)
        {
            scanf("%d", &popularity[i]);
        }
        for (int i = 0; i <= *n; i++)
        {
            scanf("%d", &platform[i]);
        }
    }
    
    void output(const int n, int popularity[], int platform[])
    {
        for (int i = 0; i < n; i++)
        {
            printf("%d", popularity[i]);
            if (i < n - 1)
                printf(" ");
        }
        printf("\n");
        for (int i = 0; i < n; i++)
        {
            printf("%d", platform[i]);
            if (i < n - 1)
                printf(" ");
        }
        printf("\n");
    }
    
    int main()
    {
        int n, popularity[MAX_FARM_SIZE], platform[MAX_FARM_SIZE];
        input(popularity, platform, &n);
        viralCapySort(popularity, platform, n);
        output(n, popularity, platform);
        return 0;
    }