我在这里找不到错误,我尝试将thaMMax数组插入到avgMax函数中。
错误是:被调用对象'tMax'它不是函数或函数指针...
我的代码是:
#include <stdio.h>
int avgMax(int tMax[6])
{
int i,avgH=0;
for(i=0;i<6;i++)
{
avgH +=tMax[i];
}
return avgH;
}
int main()
{
int tMax[6],tMin[6],i,j,avgH;
avgH=0;
for(i=0;i<6;i++)
{
printf("Temperatura maxima din %d zi : \n", i+1);
scanf(" %d",&tMax[i]);
}
for(j=0;j<6;j++)
{
printf("Temperatura minima din %d zi : \n", j+1);
scanf(" %d",&tMin[j]);
}
for(i=0;i<6;i++)
{
avgH +=tMax[i];
}
printf("Average temperature max = %d",avgMax(tMax(6)));
return 0;
}
答案 0 :(得分:0)
最后一行:
printf("Average temperature max = %d",avgMax(tMax(6)));
应该是:
printf("Average temperature max = %d",avgMax(tMax));
答案 1 :(得分:0)
问题来自:
printf("Average temperature max = %d",avgMax(tMax(6)));
使用此语法tMax(6)
,您尝试调用名为tMax的函数。
要将数组作为参数传递,请按以下方式更改行:
printf("Average temperature max = %d",avgMax(tMax));
答案 2 :(得分:0)
在C中,当您将数组传递给函数时,它会转换为指针,因此编译器会忽略您在形式参数 tMax 中指定的长度。建议的方法是将数组的长度作为单独的参数传递。在下面的修改版本中,我还使用了最方便的 LEN 宏:
#include <stdio.h>
#define LEN(arr) (sizeof (arr) / sizeof (arr)[0])
int avgMax(const int tMax[], int tMaxLen)
{
int i, avgH = 0;
for (i = 0; i < tMaxLen; i++) {
avgH += tMax[i];
}
return avgH;
}
int main()
{
int tMax[6], tMin[6], i, j, avgH;
avgH = 0;
for (i = 0; i < LEN(tMax); i++) {
printf("Temperatura maxima din %d zi : \n", i + 1);
scanf(" %d", &tMax[i]);
}
for (j = 0; j < LEN(tMin); j++) {
printf("Temperatura minima din %d zi : \n", j + 1);
scanf(" %d", &tMin[j]);
}
for (i = 0; i < LEN(tMax); i++) {
avgH += tMax[i];
}
printf("Average temperature max = %d\n", avgMax(tMax, LEN(tMax)));
return 0;
}