2013-07-25 44 views
-3

我一直負責獲取浮點數據的兩個一維數組,並逐個添加它們以創建第三個數組。我必須將它們專門傳遞給函數addfloat來完成此操作,然後將其傳遞迴主程序進行顯示。取兩個1D數組的總和,創建第三個數組,並將其傳回

我卡在哪裏是如何存儲/參考??? = 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[]); 
    } 

回答

0

及其我的理解是陣列僅僅是一個指針陣列中的第一塊數據。

這是錯誤的,數組是數組,指針是指針,它們是不一樣的。 Read this.

如何在主函數中引用新創建的第三個數組?

返回一個動態分配的新數組?將第三個參數傳遞給函數?很多方面。 E.摹:

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

AHHH!我太親密了!謝謝。所以如果你不得不說出我做錯了什麼,它會是什麼? – starkynuke

+0

再次查看後。我覺得我正在告訴它返回一個價值,那就是它沒有被告知要從傳球中尋找......類似的東西? – starkynuke

+0

@starkynuke我想到的第一個詞是「你沒有仔細閱讀並且認真學習初學者的C教程」:P更嚴重的是,你試圖從返回'void'的函數返回東西,這是根據定義錯誤,您試圖返回導致未定義行爲的本地自動數組等。 – 2013-07-25 21:27:10

相關問題