- C Programming Examples
- C Programming Examples
- C Print Hello World
- C Get Input from User
- C Print Integer
- C Add Two Numbers
- C Add Subtract Multiply Divide
- C Add n Numbers
- C Area Perimeter of Square
- C Area Perimeter of Rectangle
- C Area Circum of Circle
- C Fahrenheit to Celsius
- C Celsius to Fahrenheit
- C Inches to Centimeters
- C Kilogram to Gram
- C Reverse a Number
- C Swap Two Numbers
- C Interchange Numbers
- C Print ASCII Value
- C Print Fibonacci Series
- C Check Palindrome or Not
- C Check Armstrong or Not
- C Find Armstrong Numbers
- C Find nCr and nPr
- C Find Profit Loss
- C Sum of their Square
- C First & Last Digit Sum
- C Sum of All Digit
- C Product of All Digit
- C Print Total Digit in Number
- C Check Perfect Number
- C Find Basic Gross Salary
- C Round Number to Integer
- C Print Series upto n Term
- C Find Factors of Number
- C if-else & Loop Programs
- C Check Even or Odd
- C Check Prime or Not
- C Check Alphabet or Not
- C Check Vowel or Not
- C Check Leap Year or Not
- C Is Reverse Equal Original
- C Make Calculator
- C Add Digits of Number
- Count Positive Negative Zero
- C Largest of Two Numbers
- C Largest of Three Numbers
- C Smallest of Two Numbers
- C Smallest of Three Numbers
- C Find Factorial of Number
- C Find LCM & HCF
- C Find LCM of n Numbers
- C Find HCF of n Numbers
- C Find Arithmetic Mean
- C Find Average, Percentage
- C Find Student Grade
- C Print Table of Number
- C Print Prime Numbers
- C Find Discount Purchase
- C Calculate Parcel Charge
- C Calculate Wage of Labor
- C Print Phone Bill
- C Conversion programs
- C Decimal to Binary
- C Decimal to Octal
- C Decimal to Hexadecimal
- C Binary to Decimal
- C Binary to Octal
- C Binary to Hexadecimal
- C Octal to Decimal
- C Octal to Binary
- C Octal to Hexadecimal
- C Hexadecimal to Decimal
- C Hexadecimal to Binary
- C Hexadecimal to Octal
- C Pattern Programs
- C Pattern Printing Programs
- C Print Diamond Pattern
- C Print Floyd's Triangle
- C Print Pascal's Triangle
- C Array Programs
- C 1D Array Programs
- C Linear Search
- C Binary Search
- C Largest Element in Array
- C Smallest Element in Array
- C Second Largest/Smallest
- C Count Even Odd
- C Array Element at Even
- C Array Element at Odd
- C Print Even Array Elements
- C Print Odd Array Elements
- C Sum/Product of Even/Odd
- C Reverse an Array
- C Insert Element in Array
- C Delete Element from Array
- C Merge Two Arrays
- C Bubble Sort
- C Selection Sort
- C Insertion Sort
- C Print Common Elements
- C 2D Array Programs
- C Add Two Matrices
- C Subtract Two Matrices
- C Transpose a Matrix
- C Multiply Two Matrices
- C Sum All Matrix Elements
- C Largest Element in Matrix
- C Print Row Column Total
- C 3D Array Programs
- C String Programs
- C Print String
- C Find Length of String
- C Compare Two String
- C Copy a String
- C Concatenate String
- C Reverse a String
- C Count Vowels Consonants
- C Replace Vowel in String
- C Delete Vowels from String
- C Delete Word from String
- C Frequency of Character
- C Count Word in String
- C Remove Spaces from String
- C Sort a String
- C Sort String in Alphabetical
- C Sort Words in Ascending
- C Sort Words in Descending
- C Uppercase to Lowercase
- C Lowercase to Uppercase
- C Swap Two Strings
- C Check Anagram or Not
- C Check Palindrome String
- C Print Number in Words
- C Print Successive Character
- C Character without Space
- C File Programs
- C Read a File
- C Write Content to File
- C Read & Display File
- C Copy a File
- C Merge Two Files
- C Reverse File
- C Count All Character in File
- C List Files in Directory
- C Encrypt & Decrypt a File
- C Delete a File
- C Misc Programs
- Generate Random Numbers
- C Print Date Time
- C Print Message with Time
- C Get IP Address
- C Print Smiling face
- C Pass Array to Function
- Add Two Numbers using Pointer
- C Address of Variable
- C Shutdown Computer
- C Programming Tutorial
- C Tutorial

# C Program to Print the Second Largest and Second Smallest Array Element

In this tutorial, we will learn how to create a program in C that will ask the user to enter 10 array elements as input and then find and print out the second largest and second smallest element from that given array. Here is the program:

#include<stdio.h> #include<conio.h> int main() { int arr[10], great, small, i, j, k, limit=10, count=0; printf("Enter any 10 elements: "); for(i=0; i<limit; i++) { scanf("%d", &arr[i]); } // remove the duplicate element for(i=0; i<limit; i++) { for(j=i+1; j<limit; j++) { if(arr[i]==arr[j]) { count++; limit = limit-count; for(k=j; k<limit; k++) arr[k] = arr[k+1]; count = 0; } } } // find the first largest and smallest element great = arr[0]; small = arr[0]; for(i=0; i<limit; i++) { if(great<arr[i]) great = arr[i]; if(small>arr[i]) small = arr[i]; } // remove the first largest element for(i=0; i<limit; i++) { if(great==arr[i]) { count++; limit = limit-count; for(j=i; j<limit; j++) arr[j] = arr[j+1]; count = 0; } } // remove the first smallest element for(i=0; i<limit; i++) { if(small==arr[i]) { count++; limit = limit-count; for(j=i; j<limit; j++) arr[j] = arr[j+1]; count = 0; } } // now find the largest and smallest element, this time it will be the second largest/smallest great = arr[0]; small = arr[0]; for(i=0; i<limit; i++) { if(great<arr[i]) great = arr[i]; if(small>arr[i]) small = arr[i]; } printf("\nThe second largest number = %d", great); printf("\nThe second smallest number = %d", small); getch(); return 0; }

The program was built and run in the Code::Blocks IDE. Here is the first snapshot of the sample run:

Provide any 10 elements and then press the ENTER key to see the output that will print the second largest and the second smallest element from the list of given 10 numbers as array elements, as shown in the second snapshot of the sample run given here:

Here is another sample run of the above program. Assume the user has provided some duplicate elements as input this time, say 1, 2, 3, 4, 1, 2, 1, 8, 8, and 4 are the 10 numbers provided by the user at run-time. As you can see, there are some duplicate elements in the following way:

- 1 present three times
- 2 present two times
- 3 present one time
- 4 present two times
- 8 present two times

Therefore, the above program will first remove all the duplicate elements and then find out the first largest and smallest element, and then remove both to find the largest and smallest element that will be the second largest and smallest element of the given element. In this case, the second largest element will be 4, and the second smallest element will be 2. This is the final snapshot of the sample run:

Here are some of the main steps used in the above program:

- Receive any 10 numbers as 10 array elements.
- Remove all the duplicate elements from the array.
- To remove duplicate elements from the array, follow these steps:
- Take a variable, say limit, at the start of the program and initialize it with 10 (this is the size of the array).
- Create a for loop that runs from 0 to one less than the value of the limit variable.
- Inside this for loop, create another for loop that starts from one greater than the value of i (the outer loop variable), that is i+1, and runs up to one less than the value of variable limit.
- Compare the element present at the ith index with the element present at the jth index, that is, whether they are equal or not.
- If they are equal to each other, then remove that element and continue to check for the next match.

- Now find the first largest and smallest element.
- Here are the steps to finding the first largest and smallest element:
- Set the first element to be the largest and smallest.
- Now compare the largest element to every other element in the array to see if it is less than any other element.
- If it is found to be lesser, then place that element or initialize that element as the largest element and continue to check for the next.
- Repeat the process to find the first smallest element.

- Now remove the first largest and smallest element from the given array.
- Find the largest and smallest elements in the given array once more.
- As the first largest and smallest element were deleted, this time the largest and smallest element will be the second largest and smallest element.
- The user can print the value of both the variables "great" and "small" that hold the second largest and second smallest element from the given array at run-time.

« Previous Program Next Program »