2107: 程序改错 - 变量初始化
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:903
解决:380
题目描述
题目:求一组不重复的正整数的次大值,即去掉最大值之后的最大值
输入:多组数据,每组数据包括一个正整数n和n个正整数,2<=n<=10
输出:每组数据一行,输出次大值的下标和值
代码如下,请修正后提交:
#include <stdio.h>
void find_2nd_max(int a[], int n) {
int max_i, max_2nd_i;
int max = a[0] > a[1] ? a[0] : a[1];
int max_2nd = a[0] > a[1] ? a[1] : a[0];
int i;
for (i = 2; i < n; i++) {
if (a[i] > max) {
max_2nd = max;
max_2nd_i = max_i;
max = a[i];
max_i = i;
} else if (a[i] > max_2nd) {
max_2nd = a[i];
max_2nd_i = i;
}
}
printf("%d %d\n", max_2nd_i, max_2nd);
}
int main() {
int a[10], n, i;
while (scanf("%d", &n) != EOF) {
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
find_2nd_max(a, n);
}
return 0;
输入
多组数据,每组数据包括一个正整数n和n个正整数,2<=n<=10
输出
每组数据一行,输出次大值的下标和值
样例输入 复制
5 1 2 3 4 5
样例输出 复制
3 4