如何将一维数组插入函数

时间:2015-11-24 09:50:29

标签: c arrays function

我在这里找不到错误,我尝试将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;
}

3 个答案:

答案 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;
}