/*
10000個の乱数を昇順にソートする。
(入力ファイルを利用、ファイル名 9_7.txt)
ここでは「qsort関数を利用」

*/

#include 
#include 
#include 

#define Count 10000

int double_cmp();

main(void)
{  
  FILE *fp;
  double x[Count];
  int nx = sizeof(x)/sizeof(x[0]);
  int cnt=0;
  double val=0.0;

  if(( fp= fopen("9_7.txt", "r") ) == NULL )
    {
      printf( "ファイルが見つかりません。 --- 9_7.txt\n");
      exit( EXIT_FAILURE);
    }
  
  for(cnt = 0; cnt < Count ; cnt++)
    {
      fscanf(fp,"%lf",&val);
      
      if(val == 0.0)
	{
	  break;
	}
      x[cnt]=val;
    }
  
  qsort(x,nx,sizeof(double),(int(*)(const void *, const void *)) double_cmp);
  
  for(cnt = 0 ; cnt < Count ; cnt++)
    {
      printf("%d   %f\n", cnt, x[cnt]);
    }
  
  fclose(fp);
  
  return EXIT_SUCCESS;
}


/*double型の比較関数(昇順ソート用)*/
int double_cmp(const double *a, const double *b)
{
  if (*a < *b)
    return (-1);
  else if( *a > *b)
    return (1);
  else
    return (0);
}


[出力結果]

ファイルへ出力: sort.txt


Back to C Language

Google




BLOG
PICASAWEB
Panoramio


REF:


ニューメリカルレシピ・イン・シー