Close or Esc Key

Arduino Projects   |   Raspberry Pi   |   Electronic Circuits   |   AVR   |   PIC   |   8051   |   Electronic Projects

Accept a list of data items and find the second largest and second smallest elements

/* Write a C program to accept a list of data items and find the second       *
   largest and second smallest elements in it. And also computer the average  *
   of both. And search for the average value whether it is present in the     *
   array or not. Display appropriate message on successful search.            */

#include <stdio.h>

void main ()
{
int number[30];
int i,j,a,n,counter,ave;

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 ("%d\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 %d and %d is = %d is not in the array\n", number[1], number[n-2], ave);
else
printf ("The average of %d and %d in array is %d in numbers\n",number[1], number[n-2], counter);
} /* End of main() */

/*-------------------------------------------------------
Output
Enter the value of N
6
Enter the numbers
30
80
10
40
70
90
The numbers arranged in descending order are given below
90
80
70
40
30
10
The 2nd largest number is = 80
The 2nd smallest number is = 30
The average of 80 and 30 is = 55 is not in the array

-------------------------------------------------------*/