查找数组

时间:2017-11-08 04:18:41

标签: c arrays

我想编写一个程序,找到5个输入数字的最小数量。当我想使用函数getMinNum时,我陷入困境,但是有一个错误说:']'令牌之前的预期表达式 我知道它与指针有关联,但是如果可能的话,我想在没有指针的情况下这样做。

#include <stdio.h>
#include <stdlib.h>

float getMinNum(float a[], int x);
int main() 
{
    int n = 5;
    int i;
    float z[n];
    for(i=0; i<n; i++){
        scanf("%f", &z[i]);
    }

    printf("%6.2f", getMinNum(z[], n));
    return 0;
}

float getMinNum(float a[], int x)
{
    int i, min = a[0];
    for(i=0; i<x; i++){
        if(min > a[i+1]){
            min = a[i+1];
        }
    }
    return min;
}

2 个答案:

答案 0 :(得分:3)

您不应将'[]'附加到变量名称。

而不是:

printf("%6.2f", getMinNum(z[], n));

做的:

printf("%6.2f", getMinNum(z, n));

答案 1 :(得分:3)

您的a[i+1]将使用数组外的值,因此请改用a[i]

所以代码看起来应该是

float getMinNum(float a[], int x){

    int i;
    float min = a[0]; // Min needs to be a float
    for(i=1; i<x; i++){ // Do not need to check a[0]

        if(min > a[i]){
            min = a[i];
        }

    }

    return min;
}

并将其命名为

printf("%6.2f", getMinNum(z, n));