我想编写一个程序,找到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;
}
答案 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));