读取文件中的数字并找到中位数C.

时间:2017-03-09 18:41:45

标签: c

我正在构建一个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);

1 个答案:

答案 0 :(得分:2)

你的计数'变量未初始化。因此,有可能您的if条件无法满足,而且您的medianVal也未被初始化。