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;
}