Записать в файл f1 параметры первой окружности и окружностей, которые с ней не пересекаются - C (СИ)
Формулировка задачи:
Дан файл f содержащий целые числа. Количество чисел в файле кратно трем. Первые два числа задают координаты центра окружности (в декартовой системе), третье число — радиус. Записать в файл f1 параметры первой окружности и окружностей, которые с ней не пересекаются.
Вот что у меня получается, но где-то ошибка. Помогите пожалуйста правильно всё сделать.
#include <stdio.h> #include <stdlib.h> int o(x0,y0,r0,x1,y1,r1) if (sqrt (x1-x0)*(x1-x0)+(y1-y0)*(y1-y0) >(r1+r0)) return 0; else return 1; int main() { FILE *f,*f1; int x0,y0,r0,x1,y1,r1 f=fopen("1.txt","r"); f1=fopen("2.txt","w"); while (!feof(f)) { fscanf(f,"%i %i %i %i %i %i",&x0,&y0,&r0, &x1,&y1,&r1); if (o(x0,y0,r0,x1,y1,r1)==0) fprintf(f1,"%i %i %i %i %i %i",x0,y0,r0,x1,y1,r1); } fclose(f); fclose(f1); return 0; }
Решение задачи: «Записать в файл f1 параметры первой окружности и окружностей, которые с ней не пересекаются»
textual
Листинг программы
fscanf(f,"%i %i %i %i %i %i",&x0,&y0,&r0, &x1,&y1,&r1);
Объяснение кода листинга программы
- Программа считывает из файла f в переменные x0, y0, r0 значения параметров первой окружности.
- Затем программа считывает в переменные x1, y1, r1 значения параметров другой окружности.
- Если окружности не пересекаются, то программа записывает значения параметров второй окружности в файл f1.
- Если окружности пересекаются, то программа выводит на экран соответствующее сообщение и завершает работу.