gpt4 book ai didi

c - 如何解决这道 C 编程练习?

转载 作者:行者123 更新时间:2023-11-30 19:37:34 25 4
gpt4 key购买 nike

这是我第一次学习C。所以我必须编写一个代码,可以从任何输入的数字中找到第二大的数字。

代码是:

#include <stdio.h>
int main() {
int x, max, max2;
max = max2 = -1;

while (scanf("%d", &x) != EOF) {
if (x > max) {
max2 = max;
max = x;
} else if (x > max2) {
max2 = x;
}
}

printf("%d\n", max2);
return 0;
}

问题是,如果我输入 1 2 3 4 5这里,答案应该是 4,因为 4 是第二个最大数字。但该代码应该适用于任何输入的数字。我就是想不通。

我必须使用Linux终端和vim来解决它。我使用 vim input 在终端中创建了一个输入文件并创建一个文件并输入 1 2 3 4 5那里。但是当我使用 ./a.out <input 运行代码时,它仍然显示5。我该如何解决这个问题?

最佳答案

“任何输入的数字”是什么意思?未排序的输入?也呈阴性?这是一个函数,它接受正整数列表并返回第二个最大值,如果遇到错误(参数不足),则返回 -1。适应您的需求。

int snd_max(int length, int* args) {
int max, max2;
max = -1;
max2 = -1;
for (int i = 0; i< length; i++) {
if (args[i] > max) {
max2 = max;
max = args[i];
} else if (args[i] > max2 {
max2 = args[i]
}
}
return max2;

关于c - 如何解决这道 C 编程练习?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39610667/

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