如何在数组中存储浮点数以便以后使用?

时间:2011-02-16 02:18:53

标签: c arrays

程序的用户如何在数组中存储信息,例如浮点数,并且可以在程序中稍后计算平均值?我试图制作一个程序来计算某人的平均成绩点。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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();

数组通过引用自动传递。

希望这有助于指明你正确的方向。