我对编码还很陌生,目前正在学习 C。在我的 C 编程课上,我的老师给了我们编写一个程序的任务,该程序使用一个函数,该函数输入五个整数并打印最大的整数。该程序即使对我来说也相当简单,但我遇到了一些问题,希望得到一些建议。
#include <stdio.h>
int largest(int x);
int main(void) {
int integer1;
largest(integer1);
return 0;
}
int largest(int x) {
int i;
for (i = 0; i < 5; i++) {
printf("Enter an integer: ");
scanf_s("%d", &x);
}
return x;
}
这是我编写的代码。我遇到的主要问题是在我的主要方法中,IDE 告诉我初始化 integer1 的值。但是,我不太确定该怎么做,因为我应该通过 scanf_s 函数在 largest() 方法中输入值。我该如何解决这个问题?
最佳答案
问题就在这里,警告信息是警告你使用未初始化的自动局部变量值的潜在陷阱。你打了个电话
largest(integer1);
但您忽略了返回值,因此 integer1
仍未初始化。
请记住,鉴于 largest()
,x
是传递给该函数的实际参数的本地副本,所做的任何更改x
不会反射(reflect)给调用者。
也就是说,您的代码远未达到您的要求,抱歉。到达那里的一个简短想法是
- 创建一个函数。
- 创建一个变量(例如,
result
)并用最小可能的整数值初始化,INT_MIN
- 循环 5 次,获取用户输入,与
result
值进行比较,如果发现输入的值更大,则将其存储到result
中,否则继续。 - 返回
结果
。
关于c - 函数中的变量初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43321410/