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

来源/分类