int main(int argc, char *argv[])
{// Объявить переменные
FILE *fileIn, *fileOut;
float Radius, L, v2;
Point curPoint, point, prevPoint;
char szBuffer[100];
int index;
v2 = sqrt(2.0f);
printf("[%lf]\n",v2);
// Проверим количество аргументов
// (их должно быть 4 (строка запуска + 3 файла) )
if(argc==4)
{// Открыть исходный файл
fileIn = fopen(argv[1],"rt");
if(fileIn)
{// Открыть файл с результатами
fileOut = fopen(argv[2],"wt+");
if(fileOut)
{// Ввод радиуса
// (вводим, пока радиус не введут)
do
{
printf("Radius [2,1024] = ");
scanf("%f",&Radius);
}
while( Radius<2.0 || Radius>1024 );
// Читаем число в виде строки из файла
if( fscanf(fileIn,"%s",szBuffer)>0 )
{// Преобразуем строку в точку
ConvertToFloat(szBuffer,&curPoint);
// Записать число в результирующий файл
fprintf(fileOut,"%s\n",szBuffer);
// Читаем очередное число в виде строки
while( fscanf(fileIn,"%s",szBuffer)>0 )
{// Преобразуем строку в вещественное число
ConvertToFloat(szBuffer,&point);
// Вычислим расстояние Между точками curPoint и point
L = sqrt( fabs(curPoint.x - point.x)*fabs(curPoint.x - point.x) +
fabs(curPoint.y - point.y)*fabs(curPoint.y - point.y) );
// Проверим: равно ли расстояние ПРИБЛИЗИТЕЛЬНО радиусу
if( floor(L)==floor(Radius) )
{// Если эти велечины ПРИБЛИЗИТЕЛЬНО равны
// то записать точку в файл
fprintf(fileOut,"%s\n",szBuffer);
// и сделать вновь найденную точку исходной
curPoint.x = point.x;
curPoint.y = point.y;
}
}
}
// Закрыть файл
fclose(fileOut);
}
// Закрыть файл
fclose(fileIn);
}
подскажите, пожалуйста, что нужно поменять
Код:
[COLOR="Red"]Форматировать код по Правилам при помощи тегов.модератор.[/COLOR]