我正在构建一个C程序,它将Fibonacci数字打印到文件中并找到中位数。
我得到的输出是一个非常大且不正确的数字。任何见解都会很棒。
中位数函数C
int findMedian(FILE *file, int size)
{
int medianPos, medianVal, readVal, count;
medianPos = (size / 2);
count = 0;
while(fscanf(file,"%d", &readVal)==1)
{
if(medianPos == count)
{
medianVal = readVal;
}
if ((medianPos += 1) == count)
{
if(size % 2) //This means that it is even
{
}
else
{
medianVal += readVal;
medianVal /= 2;
}
}
count++;
}
return medianVal;
}
文件
1 1 2 3
5 8 13 21
34 55 89 144
233 377 610 987
1597 2584 4181 6765
输出
The Fibonacci median: -1576638118
函数调用
median = findMedian(Fibonacci, size);
答案 0 :(得分:2)
你的计数'变量未初始化。因此,有可能您的if条件无法满足,而且您的medianVal也未被初始化。