/* lajittelu2.c */
/* 180598 SJ */

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

#define MAX 100

int floatless(float *eka, float *toka)
{
  if ( *eka < *toka )
	  return -1;

  else if ( *eka > *toka )
	  return 1;

  else
	  return 0;

} /* floatless() */

/* jos kääntäjän herjat häiritsevät,
   pikkutarkka voisi käyttää tälläistä */
int floatless2(const void *eka,
			   const void *toka)
{
  return floatless((float*)eka,
				   (float*)toka);
}

/* intless: vain esimerkkinä, ei käytetä tässä */

int intless(int *eka, int *toka)
{
  return *eka - *toka;
}

int main()
{
  int n = 0;
  float a, t[MAX];

  printf("Anna liukulukuja, 0.0 lopuksi \n");

  scanf("%f", &a);

  while (a != 0.0 && n < MAX) {
	  t[n++] = a;
	  scanf("%f", &a);
  }

  qsort(t, n, sizeof(float), floatless);

  putchar('\n');

  printf("Kokeillaan, mitä syötit \n");
  printf("Anna liukulukuja, 0.0 lopuksi \n");

  scanf("%f", &a);

  while (a != 0.0) {

	  if (bsearch(&a, t, n, sizeof(float),
				  floatless))
		  printf("Sen syötit aiemmin\n");
	  else
		  printf("Sitä et aiemmin syöttänyt\n");

	  scanf("%f", &a);
  }

  exit(0);
  
} /* main() */
