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