Основы программирования для автоматизированного проектирования и решения творческих задач. Романенко А.В - 51 стр.

UptoLike

Составители: 

printf("End of work. Press <ENTER> to halt"); getch(); clrscr(); exit(1);
}
}
void work(void)
{
int i, j;
fscanf(input,"%i",&m); n=0; i=j=0;
do
{fscanf(input,"%i",&i); fscanf(input,"%i",&j);
if(j<i) {i=i+j; j=i-j; i=i-j;}
if(i<j) ;
{if(start==NULL) {start=malloc(sizeof(struct pokr)); uk=start;}
else {uk->next=malloc(sizeof(struct pokr)); uk=uk->next;}
uk->next=NULL; uk->a=i; uk->b=j;
if(i<=0 && j>=m) {uk->in=1; n++;}
else uk->in=0;
}
}while(i<j);
fclose(input);
}
void progon(void)
{
int i, j;
fprintf(output,"%i\n",n);
for(i=0;i<n;i++)
{for(j=i+1;j<n;j++)
{if(mas[j][0]<mas[i][0])
{mas[i][0]=mas[i][0]+mas[j][0]; mas[j][0]=mas[i][0]-mas[j][0];
mas[i][0]=mas[i][0]-mas[j][0];
mas[i][1]=mas[i][1]+mas[j][1]; mas[j][1]=mas[i][1]-mas[j][1];
mas[i][1]=mas[i][1]-mas[j][1];
}
}
fprintf(output,"%i %i\n",mas[i][0],mas[i][1]);
}
}
void sort(void)
{
int i, j;
uk=start;
switch(n)
{case 0: fprintf(output,"No solution"); break;
default: mas=(int**)malloc(n*sizeof(int*));
for(i=0;i<2;i++) mas[i]=(int*)malloc(2*sizeof(int));
uk=start;
for(i=0;i<n;i++)
{while(!uk->in) uk=uk->next;
mas[i][0]=uk->a; mas[i][1]=uk->b;
uk=uk->next;
}
progon();
}
free(mas); fclose(output);
}
void del(void)
{
uk=start->next;
while(start!=NULL)
{start->next=NULL;
free(start);
start=uk;
if(start!=NULL) uk=start->next;