All pastes #773260 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-11-14 11:37 UTC
rendered paste body
#include <stdio.h>

typedef struct przedzial
{
        int a,b;
}przedzial;

int DiZ_przedzial(przedzial *tab,float x,int i,int licz)
{
  int z,c,dlugosc;
  dlugosc=licz-i;
  z=dlugosc/2;
  
  if ((tab[z+i-1].b<=x)&&(x<=tab[z+i].a))  return -1;
  if ((tab[z+i+1].b<=x)&&(x<=tab[z+i+1].a))  return -1;
  
  if ((tab[z+i].a<=x)&&(x<=tab[z+i].b))  {c=z+i+1; return c;}
  else {
       if (x<tab[z+i].a)  return DiZ_przedzial(tab,x,i,z-1);
       else return DiZ_przedzial(tab,x,z+i+1,licz);
       }
}

int main()
{
    FILE *plik;
    FILE *plik1;
    char c;
    int rozw,d,e,i,licz=1;
    przedzial *tab;
    float x;
 
 plik=fopen("in.txt","r");
 if (plik)
 {
 do
 {
 fscanf(plik,"%c",&c); 
 if (c==',') licz++;
 } while (c!='\n');
  
 tab=malloc(licz*sizeof(przedzial));
 rewind(plik);
 
 for (i=0;i<licz;i++)
 {
 fscanf(plik,"%d %d,",&d,&e);
   tab[i].a=d; printf("a=%d ",tab[i].a);
   tab[i].b=e; printf("b=%d ",tab[i].b);
 };
 
 fscanf(plik,"%f",&x);
}
rozw=DiZ_przedzial(tab,x,0,licz-1);

plik1=fopen("out.txt","w");
fprintf(plik1,"%d",rozw);

fclose(plik);
fclose(plik1);
free(tab);
   
return 0;
}