【发布时间】:2018-01-10 02:40:49
【问题描述】:
我想在不使用数组的情况下从序列中找出第二大的数字。
说明如下。
给定一个整数序列作为输入,以 a 结尾 -1。 (即输入的整数可能是正数、负数或0。A -1 在输入信号中表示输入的结束。)
-1 不被视为输入的一部分。
在输入中找到第二大的数字。你不能使用数组。
我做的是这个。
#include <stdio.h>
int main(void) {
int i, a, temp, sec;
while (1) {
scanf("%d", &a);
if (a == -1) ;
break;
temp = a;
while (1) {
scanf("%d", &a);
if (a == -1) {
break;
}
if (a > temp)
sec = temp;
else
sec = a;
}
}
printf("%d", sec);
return 0;
}
示例测试用例如下所示。
Sample Test Cases
Input
Test Case 1
-840 -288 -261 -337 -335 488 -1
Output
-261
Test Case 2
-840 -335 -1
Output
-840
我不知道从哪里开始,哪里出错了。
【问题讨论】:
-
您上面的代码对于给定的输入不正确。
-
这没有给出正确的答案。拜托,你能纠正一下吗?
-
它给出了正确答案,你认为正确答案是什么?
-
对于第一个测试用例,实际输出显示这个 32764
-
如果你在对话中被要求这样做,你会怎么做。我会给你背一串数字,你不能把它们都写下来。当我完成时,你必须告诉我第二高数字的值。你会怎么做。注意,你可以写下 2 个数字。
标签: c