gpt4 book ai didi

c - 不使用数组查找第二大数字

转载 作者:行者123 更新时间:2023-11-30 21:47:58 24 4
gpt4 key购买 nike

您将获得一个整数序列作为输入,以 -1 结尾。 (也就是说,输入的整数可以是正数、负数或0。输入中的A -1 表示输入结束。)

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

查找输入中第二大的数字。您不能使用数组。

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

这是代码

int main()
{
int a=-32768,b=-32768,temp=-32768;
while(1)
{
scanf("%d",&a);
if(a==-1)
break;
else if(a>0)
{
temp=b;
b=a;

}
else
{
if(a>b)
{
temp=b;
b=a;
}
else
{
temp=b;
}
}

}
printf("%d",temp);
return 0;
}

最佳答案

对您的值(value)进行了错误的检查。比如像这样

#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;
}

关于c - 不使用数组查找第二大数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31521096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com