Условие задачи
По моему мнению, формулы преобразования координат следующие:
из 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;
}
|
| |
Здравствуйте, olimp_20, Вы писали:
_>Условие задачи
Мда, вот такими "задачами" и можно отбить у людей желание заниматься информатикой.
Тут всё плохо — и отсутствие практического смысла, и слишком частный пример, и жуткий формат выходных данных.
_> По моему мнению, формулы преобразования координат следующие:
_>из 1-ой системы во 2-ую
_>x2 = (x1-A)/4
_>y2 = y1-B
_>из 2-ой в 1-ую
_>x1 = 4*x2+A
_>y1 = y2+B
Если я правильно понял, там вторая система координат — просто сдвиг и масштабирование по X и Y.
Соответственно, в формулах преобразований должны участвовать все 4 переменные A,B,C,D.