函数

时间:2017-04-10 10:59:20

标签: c function initialization

我对编码很新,目前正在学习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()方法中输入值。我怎么解决这个问题?

2 个答案:

答案 0 :(得分:2)

问题在于此处,警告消息是警告您使用未初始化的自动局部变量的值的潜在缺陷。你打电话就像

  largest(integer1);

但忽略了返回值,因此integer1仍然未初始化。

请注意,鉴于largest()x是传递给该函数的实际参数的本地副本,对x所做的任何更改都会赢得'反映给来电者。

那就是说,你的代码远不是你的要求,不好意思。一个简单的想法到那里将是

  • 创建一个功能。
  • 创建一个变量(例如result)并使用最小可能的整数值INT_MIN
  • 进行初始化
  • 循环5次,获取用户输入,与result值进行比较,如果输入的值更大,则将其存储到result,否则继续。
  • 返回result

答案 1 :(得分:1)

我知道通常不应该给出作业的帮助,但我必须说你可能需要重新考虑你想做的事。

您正在为名为maximum的函数输入一个整数。但是为什么你只输入一个整数给一个应该返回最大值的函数。在这种情况下,你不能用一个数字做多少。

你应该输入一个由5个值组成的数组(如你的作业中所述)给函数,并让它返回最大值。

订单将是:

  1. 读取5个值并保存到数组
  2. 使用数组作为输入调用函数最大值
  3. 让函数执行它并返回最大值
  4. 使用最大值
  5. 执行您想要的任何操作

    但如果您只想删除警告,只需输入

    即可
    int integer1 = 0;