Форум программистов, компьютерный форум CyberForum.ru

Пересечение двух окружностей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Считывание строки в символьный массив http://www.cyberforum.ru/cpp-beginners/thread910022.html
1. Ввод из коммандной строки, число символов неизвестно. 2. Ввод из текстового файла, число символов неизвестно. Например, int main(){ char str; int length; ... //ввод строки в массив + узнать длину строки/последний элемент массива for (int i = 0 ; i < length ; i++) { cout << str; }
C++ Обьявить в классе 2 символьные ЗАКРЫТЫЕ переменные, вывести их значения на печать Уважаемые программисты Прошу помочь.:help: так как эту тему я не понял . Задание: Обьявить в классе 2 символьные ЗАКРЫТЫЕ переменные .Вывести их на печаль. Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread910015.html
построить блок-схему калькулятора C++
#include <iostream> #include <iomanip> #include <cmath> double number(); double factor(); double expr(); double brackets(); void to_2(double x); void intto_2(int x);
C++ Управление LPT портом
Нужно управлять LPT портом в BORLAND C++ 3.1 Подскажите каким образом осуществлять ввод и запись в порт информации.
C++ Управление web страницей http://www.cyberforum.ru/cpp-beginners/thread909955.html
Как допустим програмно открыть mail и нажать кнопочку "вход" на visual c++ 2008
C++ Подсчитать символы, Списки, символы(+,-,++,--, = и т.д.) хелп плиз...нужна прога... В исходном тексте встречаются всевозможные символы языка Си (+,-,++ и тд). Написать программу, которая выделяет каждое вхождение отдельного символа, считает их колличество и хранит их вместе со счётчиками в линейном однонаправленном циклическом списке. подробнее

Показать сообщение отдельно
Nigativ
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 6
23.06.2013, 14:16     Пересечение двух окружностей
Задание во вложение.
Вот сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <fstream>
#include <iomanip>
 
using namespace std;
ifstream in("circles.in");
ofstream out("circles.out");
 
struct Point {
    double x, y;
};
 
struct Circle {
    double x, y, r;
};
 
struct Segment {
    double a, b, c;
};
 
void IntersectCircle(double cx0, double cy0, double radius0, double cx1, double cy1, double radius1) {
    double dx = cx0 - cx1;
    double dy = cy0 - cy1;
    double dist = sqrt(dx * dx + dy * dy);
 
    if (dist > radius0 + radius1) {
        out << "0" << endl;
    }
    else if (dist < abs(radius0 - radius1)) {
        out << "0" << endl;
    }
    else if ((dist == 0) && (radius0 == radius1)) {
        out << "-1" << endl;
    }
    else {
        double a = (radius0 * radius0 - radius1 * radius1 + dist * dist) / (2 * dist);
        double h = sqrt(radius0 * radius0 - a * a);
 
        double cx2 = cx0 + a * (cx1 - cx0) / dist;
        double cy2 = cy0 + a * (cy1 - cy0) / dist;
 
        if (dist == radius0 + radius1) {
            out << "1" << endl;
            out << setprecision(9) << (cx2 + h * (cy1 - cy0) / dist) << " " << setprecision(9) << (cy2 - h * (cx1 - cx0) / dist) << endl;
        }
        else {
            out << "2" << endl;
            out << setprecision(9) << (cx2 + h * (cy1 - cy0) / dist) << " " << setprecision(9) << (cy2 - h * (cx1 - cx0) / dist) << " ";
            out << setprecision(9) << (cx2 - h * (cy1 - cy0) / dist) << " " << setprecision(9) << (cy2 + h * (cx1 - cx0) / dist) << endl;
        }
    }
}
 
int main() {
    int n;
 
    double r1, r2, x1, x2, y1, y2;
 
    in >> n;
 
    for (int i = 0; i < n; i++) {
        in >> x1 >> y1 >> r1;
        in >> x2 >> y2 >> r2;
        
        IntersectCircle(x1, y1, r1, x2, y2, r2);
        out << endl;
        
    }
 
    return 0;
}
Никак не могу понять, почему не проходит в системе один из тестов. Может кто-нибудь приведет контр-пример? Или подскажет, что не так в коде. Возможно не совсем правильно вывожу числа с нужной точностью?
Миниатюры
Пересечение двух окружностей  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru