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

Координаты пересечения двух прямоугольников - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Странное поведение функций _findfirst() и _findnext() http://www.cyberforum.ru/cpp-beginners/thread786286.html
в материалах по С++ дан пример работы с файлами, переименование, удаление и просмотр содержимого директории. Просмотр осуществляется с помощью структуры fileinfo и функций _findfirst() и _findnext(). Вопрос следующий, в каждой папке у меня оказывается по 2 дополнительных файла с именем точка и две точки, почему? #include <stdio.h> #include <io.h> #include <string.h> #include...
C++ Символьные строки (верно ли, что существуют такие натуральные i и j, что 1 < i < j < n и что si совпадает с s(i+1), а sj совпадает с s(j+1)) Даны символы s1, s2, … Известно, что символ s1 отличен от восклицательного знака и что среди s2, s3,. .. есть по крайней мере один восклицательный знак. Пусть s1, …, sn – символы данной последовательности, предшествующие первому восклицательному знаку (n заранее неизвестно).Выяснить, верно ли, что существуют такие натуральные i и j, что 1 < i < j < n и что si совпадает с s(i+1), а sj... http://www.cyberforum.ru/cpp-beginners/thread786284.html
C++ Game developing на C++
Всем привет! Слушайте народ подходит ли C++ для программирования под игры?(например движки там графические,физические писать тудым сюдым:)) И еше куда пойти учиться в России на программиста чтобы потом доучить game-developing(программирование,анимация,моделинг) и уехать за границу и там уже профессионально заниматься этим?
смена логина C++
Написать программу. Имеется три пользователя( три разных логина и пароля), ввести логин и пароль, если он правильный вывести на экран фразу "Вход в систему", если не правильный - даем подсказку и вводим пароль еще раз, если снова неправильный - предлагаем сменить пароль( с помощью специального кода) или ввести пароль еще раз. Количество попыток не более трех.
C++ Деление вещественных чисел http://www.cyberforum.ru/cpp-beginners/thread786256.html
Есть float a,b,rez; Делю 4 на 2 = 2 все нормально. 2 на 4 ответ 0 Как правильно делить вещественные числа в с++?
C++ Нужно переделать эту программу, под другую ситуацию #include <stdio.h> #include <conio.h> #include <string.h> #include <vcl.h> #define LEN 80 #define NUM_W 40 void main() { int i, j, k = 0; char str, *words, подробнее

Показать сообщение отдельно
dimon_91
10 / 10 / 1
Регистрация: 06.05.2009
Сообщений: 34
15.02.2013, 11:38     Координаты пересечения двух прямоугольников
Попробуйте так:
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>
 
struct point
{
    int x,y;
}
struct rectangle
{
    point lt; //left top
    point rb; //right bottom
}
 
int min(int a, int b);
int max(int a, int b);
 
int main()
{
    setlocale(NULL,"rus");
    rectangle a,b,c;
    cout<<"Введите координаты первого прямоугольника:"<<endl;
    cout<<"верхний левый угол:\tx = ";
    cin>>a.lt.x;
    cout<<"\ty = ";
    cin>>a.lt.y;
    cout<<endl<<"правый нижний угол:\tx = ";
    cin>>a.rb.x;
    cout<<"\ty = ";
    cin>>a.rb.y;
    cout<<endl<<"Введите координаты второго прямоугольника:"<<endl;
    cout<<"верхний левый угол:\tx = ";
    cin>>b.lt.x;
    cout<<"\ty = ";
    cin>>b.lt.y;
    cout<<endl<<"правый нижний угол:\tx = ";
    cin>>b.rb.x;
    cout<<"\ty = ";
    cin>>b.rb.y;
    // варианты пересечения прямоугольников
    if(a.rb.y>b.lt.y || a.lt.y<b.rb.y || a.lt.x>b.rb.x || a.rb.x<b.lt.x)
    {
        cout<<"Прямоугольники не пересекаются"<<endl;
    }
    else
    {
        c.lt.y=min(a.lt.y,b.lt.y);
        c.lt.x=max(a.lt.x,b.lt.x);
        c.rb.y=max(a.rb.y,b.rb.y);
        c.rb.x=min(a.rb.x,b.rb.x);
        cout<<"Координаты пересечения:"<<endl;
        cout<<"левый верхний угол: x = "<<c.lt.x<<"\t y = "<<c.lt.y<<endl;
        cout<<"правый нижний угол: x = "<<c.rb.x<<"\t y = "<<c.rb.y<<endl;
    }   
    return 0;
}
 
int min(int a, int b)
{
    if(a<b)
        return a;
    else
        return b;
}
 
int max(int a, int b)
{
    if(a>b)
        return a;
    else
        return b;
}
 
Текущее время: 10:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru