Array给出了垃圾值

时间:2015-12-11 20:50:29

标签: c arrays pointers

程序应该打印最小值和最大值但是我得到一些错误 垃圾值:/

这是代码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void minMax(int arr[], int size, int* max, int* min);

int main()
{
    int maximum, minimum, i;
    int arr[5];

    printf("Please enter 5 numbers: ");

    for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++);
    {
        scanf("%d", &arr[i]);
    }

    minMax(arr, sizeof(arr) / sizeof(arr[0]), &maximum, &minimum);
    printf("Max is: %d \nMin is: %d", maximum, minimum);

    return(0);
}

void minMax(int arr[], int size, int* max, int* min)
{
    int i;
    *max = *min = arr[0];

    for (i = 1; i < size; i++)
    {
        if (*max < arr[i])
            *max = arr[i];
        if (*min > arr[i])
            *min = arr[i];
    }
    printf("\n");
}

这就是我得到的: enter image description here

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在C语言中,for(i = 0; i < sizeof(arr) / sizeof(arr[0]); i++);

是合法的

它意味着与

相同
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{}

使用{和}将代码片段放在自己的块中也是合法的。这就是为什么你没有编译错误但没有得到你需要的输出