C program to find the second largest and smallest numbers in an array

CServer Side ProgrammingProgramming

Enter the array elements and then, arrange the numbers in descending order by using the swapping technique. Later on, with the help of an index location, try to print the second largest and the second smallest element in an array.

An array is used to hold the group of common elements under one name.

The array operations in C programming language are as follows −

  • Insert
  • Delete
  • Search

Algorithm

Given below is an algorithm to find the second largest and the second smallest numbers in an array −

Step 1 − Declare and read the number of elements.

Step 2 − Declare and read the array size at runtime.

Step 3 − Input the array elements.

Step 4 − Arrange numbers in descending order.

Step 5 − Then, find the second largest and second smallest numbers by using an index.

Step 6 − Print the second largest and the second smallest numbers.

Program

Given below is the C program to find the second largest and the second smallest numbers in an array

#include<stdio.h>
void main(){
   int i,j,a,n,counter,ave,number[30];
   printf ("Enter the value of N\n");
   scanf ("%d", &n);
   printf ("Enter the numbers \n");
   for (i=0; i<n; ++i)
      scanf ("%d",&number[i]);
   for (i=0; i<n; ++i){
      for (j=i+1; j<n; ++j){
         if (number[i] < number[j]){
            a = number[i];
            number[i] = number[j];
            number[j] = a;
         }
      }
   }
   printf ("The numbers arranged in descending order are given below\n");
   for (i=0; i<n; ++i)
      printf ("%10d\n",number[i]);
   printf ("The 2nd largest number is = %d\n", number[1]);
   printf ("The 2nd smallest number is = %d\n", number[n-2]);
   ave = (number[1] +number[n-2])/2;
   counter = 0;
   for (i=0; i<n; ++i){
      if (ave==number[i])
         ++counter;
   }
   if (counter==0)
      printf("The average of 2nd largest & 2nd smallest is not in the array\n");
   else
      printf("The average of 2nd largest & 2nd smallest in array is %d in numbers\n", counter);
}

Output

When the above program is executed, it produces the following result −

Enter the value of N

5
Enter the numbers
10
12
17
45
80

The numbers arranged in descending order are given below
80
45
17
12
10
The 2nd largest number is = 45
The 2nd smallest number is = 12
The average of 2nd largest & 2nd smallest is not in the array
raja
Published on 01-Sep-2021 12:58:06
Advertisements