如何将浮点数存储在数组中以备后用?
答
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
答
从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();
阵列都通过引用自动传递。
希望这有助于您指出正确的方向。
无需存储单个元素;只需总结价值观并记录其中有多少,然后在最后划分。 – alternative 2011-03-27 00:21:36