2011-02-16 48 views
0

程序的用户如何在数组中存储信息(如浮点数),并且可以在程序的稍后时间计算平均值?即时通讯试图制定一个计划,以计算某人的平均成绩。如何将浮点数存储在数组中以备后用?

+0

无需存储单个元素;只需总结价值观并记录其中有多少,然后在最后划分。 – alternative 2011-03-27 00:21:36

回答

0
int maxGrades = 50; // pick this 
int numGrades = 0; 

float[] grades = malloc (sizeof (float) * maxGrades); 


// in a loop somewhere 
if(numGrades == maxGrades) { 
    maxGrades *= 2; 
    float[] newGrades = malloc (sizeof (float) * maxGrades); 
    for(int i = 0; i < numGrades; i++) newGrades[i] = grades[i]; 
    grades = newGrades; 
} 
grades[numGrades++] = theNewestGrade; 
+0

`new`会导致C程序中的语法错误... – 2011-02-16 02:29:32

+0

你说得对,我一直在做Java! – corsiKa 2011-02-16 02:34:27

0

从java转换到C,你必须做的最大的“概念跳跃”是指针。

尽量分配好自己的花车是这样的:

float *float_array = malloc(amount_of_elemts_in_array * sizeof(float)) 

然后,您可以通过使用

float_array[index] 

有了这个指针将使你通过float_array进出的功能通过引用这是一个迭代因为您不想在每个函数调用中重新创建实例,因此非常方便。

通行证float_array成使用功能:

Function Declaration: void function_that_uses_float_array(float *placeholder); 
Function Call: function_that_uses_float_array(placeholder); 

通行证float_array出的使用功能:

Return statement: return a_float_pointer; 
One level up the stack: float_array = function_that_returns_a_float_pointer(); 

阵列都通过引用自动传递。

希望这有助于您指出正确的方向。

相关问题