我对编码很新,目前正在学习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;
}
这是我写的代码。我遇到的主要问题是在我的main方法中,IDE告诉我初始化integer1的值。但是,我不确定如何做到这一点,因为我应该通过scanf_s函数在largest()方法中输入值。我怎么解决这个问题?
答案 0 :(得分:2)
问题在于此处,警告消息是警告您使用未初始化的自动局部变量的值的潜在缺陷。你打电话就像
largest(integer1);
但忽略了返回值,因此integer1
仍然未初始化。
请注意,鉴于largest()
,x
是传递给该函数的实际参数的本地副本,对x
所做的任何更改都会赢得'反映给来电者。
那就是说,你的代码远不是你的要求,不好意思。一个简单的想法到那里将是
result
)并使用最小可能的整数值INT_MIN
result
值进行比较,如果输入的值更大,则将其存储到result
,否则继续。result
。答案 1 :(得分:1)
我知道通常不应该给出作业的帮助,但我必须说你可能需要重新考虑你想做的事。
您正在为名为maximum的函数输入一个整数。但是为什么你只输入一个整数给一个应该返回最大值的函数。在这种情况下,你不能用一个数字做多少。
你应该输入一个由5个值组成的数组(如你的作业中所述)给函数,并让它返回最大值。
订单将是:
但如果您只想删除警告,只需输入
即可int integer1 = 0;