程序的用户如何在数组中存储信息,例如浮点数,并且可以在程序中稍后计算平均值?我试图制作一个程序来计算某人的平均成绩点。
答案 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();
数组通过引用自动传递。
希望这有助于指明你正确的方向。