#include <stdio.h>
#include <limits.h> // For INT_MIN
int main( ) {
int n;
// Get the size of the array from the user
printf ( "Enter the number of elements in the array: " ) ;
// Declare a single-dimensional array of size n
int arr[ n] ;
// Read elements into the array
printf ( "Enter %d integers:\n " , n
) ; for ( int i = 0 ; i < n; i++ ) {
printf ( "Element %d: " , i
+ 1 ) ; }
// Handle edge cases for arrays with less than 2 elements
if ( n < 2 ) {
printf ( "Cannot find the second largest element for an array with less than 2 elements.\n " ) ; return 0 ;
}
// Initialize largest and second largest
int largest = INT_MIN;
int secondLargest = INT_MIN;
// Find the largest and second largest elements
for ( int i = 0 ; i < n; i++ ) {
if ( arr[ i] > largest) {
secondLargest = largest; // Current largest becomes second largest
largest = arr[ i] ; // New largest
} else if ( arr[ i] > secondLargest && arr[ i] != largest) {
secondLargest = arr[ i] ; // Update second largest
}
}
// Print the second largest element
if ( secondLargest == INT_MIN) {
printf ( "There is no distinct second largest element (e.g., all elements are the same).\n " ) ; } else {
printf ( "The second largest element in the array is: %d\n " , secondLargest
) ; }
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxsaW1pdHMuaD4gLy8gRm9yIElOVF9NSU4KCmludCBtYWluKCkgewogICAgaW50IG47CgogICAgLy8gR2V0IHRoZSBzaXplIG9mIHRoZSBhcnJheSBmcm9tIHRoZSB1c2VyCiAgICBwcmludGYoIkVudGVyIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIGFycmF5OiAiKTsKICAgIHNjYW5mKCIlZCIsICZuKTsKCiAgICAvLyBEZWNsYXJlIGEgc2luZ2xlLWRpbWVuc2lvbmFsIGFycmF5IG9mIHNpemUgbgogICAgaW50IGFycltuXTsKCiAgICAvLyBSZWFkIGVsZW1lbnRzIGludG8gdGhlIGFycmF5CiAgICBwcmludGYoIkVudGVyICVkIGludGVnZXJzOlxuIiwgbik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHByaW50ZigiRWxlbWVudCAlZDogIiwgaSArIDEpOwogICAgICAgIHNjYW5mKCIlZCIsICZhcnJbaV0pOwogICAgfQoKICAgIC8vIEhhbmRsZSBlZGdlIGNhc2VzIGZvciBhcnJheXMgd2l0aCBsZXNzIHRoYW4gMiBlbGVtZW50cwogICAgaWYgKG4gPCAyKSB7CiAgICAgICAgcHJpbnRmKCJDYW5ub3QgZmluZCB0aGUgc2Vjb25kIGxhcmdlc3QgZWxlbWVudCBmb3IgYW4gYXJyYXkgd2l0aCBsZXNzIHRoYW4gMiBlbGVtZW50cy5cbiIpOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIC8vIEluaXRpYWxpemUgbGFyZ2VzdCBhbmQgc2Vjb25kIGxhcmdlc3QKICAgIGludCBsYXJnZXN0ID0gSU5UX01JTjsKICAgIGludCBzZWNvbmRMYXJnZXN0ID0gSU5UX01JTjsKCiAgICAvLyBGaW5kIHRoZSBsYXJnZXN0IGFuZCBzZWNvbmQgbGFyZ2VzdCBlbGVtZW50cwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoYXJyW2ldID4gbGFyZ2VzdCkgewogICAgICAgICAgICBzZWNvbmRMYXJnZXN0ID0gbGFyZ2VzdDsgLy8gQ3VycmVudCBsYXJnZXN0IGJlY29tZXMgc2Vjb25kIGxhcmdlc3QKICAgICAgICAgICAgbGFyZ2VzdCA9IGFycltpXTsgICAgICAgIC8vIE5ldyBsYXJnZXN0CiAgICAgICAgfSBlbHNlIGlmIChhcnJbaV0gPiBzZWNvbmRMYXJnZXN0ICYmIGFycltpXSAhPSBsYXJnZXN0KSB7CiAgICAgICAgICAgIHNlY29uZExhcmdlc3QgPSBhcnJbaV07IC8vIFVwZGF0ZSBzZWNvbmQgbGFyZ2VzdAogICAgICAgIH0KICAgIH0KCiAgICAvLyBQcmludCB0aGUgc2Vjb25kIGxhcmdlc3QgZWxlbWVudAogICAgaWYgKHNlY29uZExhcmdlc3QgPT0gSU5UX01JTikgewogICAgICAgIHByaW50ZigiVGhlcmUgaXMgbm8gZGlzdGluY3Qgc2Vjb25kIGxhcmdlc3QgZWxlbWVudCAoZS5nLiwgYWxsIGVsZW1lbnRzIGFyZSB0aGUgc2FtZSkuXG4iKTsKICAgIH0gZWxzZSB7CiAgICAgICAgcHJpbnRmKCJUaGUgc2Vjb25kIGxhcmdlc3QgZWxlbWVudCBpbiB0aGUgYXJyYXkgaXM6ICVkXG4iLCBzZWNvbmRMYXJnZXN0KTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==