【问题标题】:Taking the sum of two 1D arrays, creating a third array, and passing it back取两个一维数组之和,创建第三个数组,并将其传回
【发布时间】:2013-07-25 20:46:41
【问题描述】:

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

我遇到困难的地方是如何存储/引用 ??? =数组1+数组2。如何在 main 函数中引用新创建的第三个数组?

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

#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[]); 
    }

【问题讨论】:

    标签: c arrays function pointers sum


    【解决方案1】:

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

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

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

    返回一个动态分配的新数组?将第三个参数传递给函数?这么多方法。例如:

    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);
    

    【讨论】:

    • 啊啊啊!!我是如此接近!谢谢。所以,如果你必须用语言表达我做错了什么,会是什么?
    • 又看了一遍。我觉得我在告诉它返回一个没有被告知要从回传中寻找的值......类似的东西?
    • @starkynuke 我想到的第一个词是“你没有足够仔细地阅读和学习初学者的 C 教程”:P 更严重的是,你试图从函数中返回东西返回void,根据定义这是错误的,您试图返回导致未定义行为等的本地自动数组。
    • 感谢您的宝贵时间。我很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2016-02-09
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多