Условие задачи
По моему мнению, формулы преобразования координат следующие:
из 1-ой системы во 2-ую
x2 = (x1-A)/4
y2 = y1-B
из 2-ой в 1-ую
x1 = 4*x2+A
y1 = y2+B
Проблема: 1ый тест -правильно, остальные, №№2-8, — ошибка. В чем может быть проблема? Формулы неправильные или типы данных неправильно выводит программа:
| Код |
| #include <stdio.h>
struct Point{
double x, y;
};
Point coord1To2(Point);
Point coord2To1(Point);
double A, B, C, D;
//-------------------------------------------------
int main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
Point p1, p2;
scanf("%lf%lf%lf%lf%lf%lf%lf%lf", &A, &B, &C, &D, &p1.x, &p1.y, &p2.x, &p2.y);
Point res;
res = coord1To2(p1);
printf("%lE %lE ", res.x, res.y);
res = coord2To1(p2);
printf("%lE %lE\n", res.x, res.y);
return 0;
}
//-------------------------------------------------
Point coord1To2(Point p){
Point ans;
ans.x = (p.x-A)/4.0;
ans.y = p.y-B;
return ans;
}
Point coord2To1(Point p){
Point ans;
ans.x = 4.0*p.x+A;
ans.y = p.y+B;
return ans;
}
|
| |