取两个1D阵列的总和,创建第三个阵列,并将其传回

时间:2013-07-25 20:46:41

标签: c arrays function pointers sum

我的任务是获取浮动数据的两个一维数组,逐个元素地添加它们以创建第三个数组。我必须将它们专门传递给函数addfloat才能完成此操作,然后将其传递回主程序进行显示。

我遇到的问题是如何存储/引用??? = array1 + array2。如何在主函数中引用新创建的第三个数组?

是的,这是我正在学习的课程。我的在线讲师对我对这个概念的理解没有帮助。他只是一直告诉我提交我的内容。

#include <stdio.h>

void addfloat(float [],float []);

int main ()
{
float SLG [10] = {.508,.504,.473,.415,.407,.379,.388,.340,.405,.278};
float OBP [10] = {.434,.327,.425,.342,.314,.270,.328,.348,.327,.306};
float OPS [10];
int j,k,g,n;


addfloat (SLG,OBP);

printf("Their Slugging Percentages (SLG) are:\n");
        for (j=0; j<10; j++)
        {
                printf("%.3f, ",SLG[j]);
        }

    printf("\n");
    printf("Their On Base Percentages (OBP) are:\n");
        for (k=0; k<10; k++)
            {
                printf("%.3f, ",OBP[k]);
            }
    /*Place work-around back in here if necessary where I just add the two arrays without     passing it out*/

    printf("\n");
    printf("Their Slugging Percentage (OPS) are:\n");
        for (g=0; g<10; g++)
            {
                printf("%1.3f, ", OPS[g]);
            }
    return 0;
}

void addfloat (float SLG[],float OBP[])
    {
        float OPS [10];
        int i;

        for (i=0; i<10; i++)
        {
            OPS[i] = SLG[i]+OBP[i];
        }
return (OPS[]); 
    }

1 个答案:

答案 0 :(得分:0)

  

我的理解是数组只是指向数组中第一个数据的指针。

那是错的,数组是数组,指针是指针,它们不一样。 Read this.

  

如何在main函数中引用新创建的第三个数组?

返回一个动态分配的新数组?将第三个参数传递给函数?这么多方面。 E. g。:

void add_floats(const float a[], const float b[], float y[], size_t n)
{
    for (size_t i = 0; i < n; i++)
        y[i] = a[i] + b[i];
}

称之为:

#define COUNT 3

float first[COUNT] = { 1, 2, 3 };
float second[COUNT] = { 4, 5, 6 };
float result[COUNT];

add_floats(first, second, result, COUNT);