找不到第二个数字而不使用数组

时间:2015-07-20 15:59:07

标签: c

给定一个整数序列作为输入,以-1结尾。 (也就是说,输入整数可能是正数,负数或0.输入中的A -1表示输入结束。)

-1不被视为输入的一部分。

找到输入中的第二大数字。你可能不会使用数组。

测试用例通过,但得分为0.0

这是代码

false

1 个答案:

答案 0 :(得分:2)

以你的方式检查价值。 例如,像这样

#include <stdio.h>

#define EOI -1 //End Of Input

int main(void){
    int input, first, second;

    first = second = EOI;

    while(1){
        if(1 != scanf("%d", &input)){
            fprintf(stderr, "invalid input!\n");
            return -1;
        }
        if(input == EOI)
            break;
        if(first == EOI){
            first = input;
        } else if(first <= input){
            second = first;//slide
            first = input;
        } else if(second == EOI || second < input){
            second = input;
        }
    }
    if(second == EOI){//first == EOI || second == EOI
        fprintf(stderr, "No valid value is entered more than one!\n");
        return -2;
    }
    printf("%d\n", second);
    return 0;
}
相关问题