All submissions

Find Top 3 Largest Values in an Array

Code

  1. #include <stdio.h>
    #include <stdint.h>
    
    void find_top_3(uint8_t *a, uint8_t n) {
        // Your logic here
         int i,j;
        for(i=0;i<n-1;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(a[i]< a[j])
                {
                    int t=a[i];
                    a[i]=a[j];
                    a[j]=t;
                }
            }
        }
        if(n>3)
        {
            for(i=0;i<3;i++)
            printf("%d ",a[i]);
        }
        else
        for(i=0;i<n;i++)
        printf("%d ",a[i]);
    
    }
    
    int main() {
        uint8_t n;
        scanf("%hhu", &n);
        uint8_t arr[100];
    
        for (uint8_t i = 0; i < n; i++) {
            scanf("%hhu", &arr[i]);
        }
    
        find_top_3(arr, n);
        return 0;
    }

Solving Approach

 int i,j;
    for(i=0;i<n-1;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(a[i]< a[j])
            {
                int t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        }
    }
    if(n>3)
    {
        for(i=0;i<3;i++)
        printf("%d ",a[i]);
    }
    else
    for(i=0;i<n;i++)
    printf("%d ",a[i]);

 

 

Loading...

Input

6 10 90 20 80 70 30

Expected Output

90 80 70