本题要求从输入的N个整数中查找数组的第2大的数,然后输出。 输入格式: 输入在第一行中给出一个正整数n(1<n≤100)。第二行输入n个整数,用空格分开。 输出格式: 在一行中输出第2大的值。
时间: 2024-12-14 11:28:13 浏览: 3
这是一个经典的编程问题,通常可以使用排序算法来解决。这里提供一种简单直接的方法,即先读取所有数字并将它们放入一个数组,然后对数组进行一次遍历找到最大值(第一个元素),再从剩余的元素中找到次大值(第二大的元素)。以下是使用C语言的一个解决方案:
```c
#include <stdio.h>
#define MAX_NUM 100 // 定义数组的最大长度
int findSecondLargest(int arr[], int n) {
int largest = -1, secondLargest = -1;
for (int i = 0; i < n; i++) {
if (arr[i] > largest) {
secondLargest = largest;
largest = arr[i];
} else if (arr[i] > secondLargest && arr[i] != largest) {
secondLargest = arr[i];
}
}
return secondLargest;
}
int main() {
int n;
scanf("%d", &n);
int arr[MAX_NUM];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int secondMax = findSecondLargest(arr, n);
printf("The second largest number is: %d\n", secondMax);
return 0;
}
```
这个程序首先读入`n`和`n`个整数,然后通过`findSecondLargest`函数找出第二大数值。注意输入验证也很重要,防止溢出。
阅读全文