Есть две системы координат
От: olimp_20  
Дата: 02.08.15 11:04
Оценка:
Условие задачи
По моему мнению, формулы преобразования координат следующие:

из 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;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.