単純に、配列を渡したらメジアンを返してくれるプログラム

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>


float fmed(float a[], int isa);


int main(void)
{
  int i,n;
  printf("Enter n = ");
  scanf("%d",&n);        /* 配列の数を入力 */ 


  float value[n];

  for(i=0;i<n;i++){
    printf("float value = ");
    scanf("%f",&value[i]);   /* 配列に値を代入 */
    printf("i = %d     float value = %f\n", i+1, value[i]);
  }

  float med;
  med = fmed(value, n);   /* 配列とその数を関数fmedに渡して、メジアンをいただく */
  printf("median = %f\n", med);


  return 0;
}


float fmed( float a[], int isa )
{
    long   i, j;     /* for do loop */          
    long   ioe;      /* mod(isa) */ 
    long   ihalf;    /* isa/2 */                   
    long   imax;     /* ihalf+1 or ihalf */      
    float  *ai, *aj, work;                   
    float  med;      /* median */              
       
    if( isa > 1 ) {
       ioe = isa%2;
       ihalf = 0.5*isa;
       if( isa == 2 ) ihalf = 0;
	  imax = ihalf + 1;
       for ( i=0; i<imax; i++ ) {
       for ( j=i+1; j<isa; j++ ) {
          ai = (a+i);
          aj = (a+j);
          if ( *ai > *aj ) {
             work = *ai;
             *ai = *aj;
             *aj = work;
             }  
          }}
       if( isa == 2 ) {
          med = 0.5*(a[0] + a[1]);
          }
       else {
          if( ioe == 1 ) med = a[ihalf];
          else           med = 0.5*(a[ihalf-1] + a[ihalf]);
          }
       }
    else {
       if( isa == 1 ) med = a[0];
       else           med = 0.0;
       }


    return( med );
}

いきなりfitsファイルをイジろうとしたから難しかったんだよ。こうやって簡単な問題を設定してあげなきゃ。