返回多个东西的函数

-2 c

我正在学习C,我正在尝试创建一个能够返回更多东西的函数.我编写了代码,但其中一个值没有给我正确的输出,我无法弄清楚它为什么这样做.

struct num {
    int min;
    int max;
};

struct num Some(int Array[]) {
    int i;
    struct num result;
    result.max = Array[0];
    result.min = Array[0];
    for(i = 0; i<=3; i++) {
        if(result.min > Array[i]) {
            result.min = Array[i];
        } else if(result.max < Array[i]) {
            result.max = Array[i];
        }
    }
    return result;
}

int main()
{
    int Array[] = {7,8,3};
    struct num something;
    something  = Some(Array);
    printf("Total is %d and max is %d",something.min,something.max);
}
Run Code Online (Sandbox Code Playgroud)

程序打印数组的正确最小值,但它给出的最大值为4200784.

Lig*_*ica 8

for(i = 0;i<=3;i++){
//        ^^^^
Run Code Online (Sandbox Code Playgroud)

你循环了四次.

在具有三个元素的数组上.

  • @shekharsuman:我选择Stack Exchange模型,而不是Shekhar的制定规则.这是问题的答案,因此我将其作为答案发布.在评论部分回答问题是_bad_和_wrong_; 不幸的是,这是一个上升的趋势.这是一个Q&A而不是Q&C. (4认同)
  • @shekharsuman:为什么? (3认同)