Не проходит компиляция из-за ошибок

Задание: Два прямоугольника расположенные в первом квадранте, со сторонами параллельными осям координат, заданы координатами своих левого верхнего и 9 правого нижнего углов. Для первого прямоугольника это точки (x1, y1) и (x2, 0), для второго - (x3, y3) и (x4, 0). Составить программу, определяющую, пресекаются ли данные прямоугольники, и вычисляющую площадь общей части, если они пересекаются

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

using namespace std; //здесь выдает ошибку Declaration Syntax Error
int main(){
 double x1, x2, x3, x4, y1, y3
 if (x1>x2 || x3>x4) //здесь выдает ошибку Declaration Syntax Error
 cout<<"ошибка в задании координат";
 if (x3 < x2 && x4 > x1)
 {
 double yp= min(y1, y3); //здесь выдает ошибку Function 'min' should have a prototype
 double xp1= max(x1, x3); //здесь выдает ошибку Function max' should have a prototype
 double xp2= min(x2, x4);
 double s=(xp2 - xp1)*yp;
 cout<<s;
 }
 else
 cout<<"не пересекаются";
 getch();
return 0;
}

Ответы (2 шт):

Автор решения: Qwertiy
using namespace std; //здесь выдает ошибку Declaration Syntax Error

Удали эту строку, она не нужна.

double x1, x2, x3, x4, y1, y3

Добавь в конец ;.

double yp= min(y1, y3); //здесь выдает ошибку Function 'min' should have a prototype
 double xp1= max(x1, x3); //здесь выдает ошибку Function max' should have a prototype

По идее должны быть в stdlib.h, но если после исправления предыдущих ошибок не заработает, то придётся реализовать их самостоятельно.

Ещё можно попробовать fmin из math.h, но что-то я сомневаюсь, что он там был.

→ Ссылка
Автор решения: Александр

Прошу прощения, не только я запнулся на пространстве имён С++, поэтому разрешите предоставить объяснение Герберта Шилдта в книге "С++. Руководство для начинающих": Приложение Б. Использование устаревшего С++ компилятора. При использовании современного компилятора у вас не должно быть проблем с компиляцией программ из этой книги. В этом случае вам вообще не понадобится информация, представленная в настоящем приложении. Как разъяснялось выше, программы, приведенные в этой книге, полностью соответствуют стандарту ANSI/ IS0 для С++ и могут быть скомпилированы практически любым современным С++-компилятором, включая Visual С++ (Мiсrosoft) и С++ Builder (Borland). Но если вы используете компилятор, созданный несколько лет назад, то при попытке скомпилировать наши примеры он может выдать целый список ошибок, не распознав ряд новых С++-средств. И в этом случае не стоит волноваться. Для того чтобы эти программы заработали со старыми компиляторами, нужно внести в них небольшие изменения. Чаще всего старые и новые С++-программы отличаются использованием двух средств: заголовков и npoстранств имен." Я покороче опишу: (ОШИБКА: "using namespace std; //здесь выдает ошибку Declaration Syntax Error") Новая версия компилятора не требует указывать расширение имён файлов заголовков(.h), НО ОБЯЗАТЕЛЬНО требуется объявлять пространство имён std. ЕСЛИ У ВАС ПРИ КОМПИЛЯЦИИ возникают ошибки с указанием на эти строки, ЗНАЧИТ У ВАС СТАРАЯ ВЕРСИЯ КОМПИЛЯТОРА, и ему надо указывать так:

#include <iostream.h> // указываем расширение имени файла заголовков .h

// using namespace std; - исключаем строку, объявляющую область пространства имён языка С++, необходимых для новой версии языка и компилятора.

→ Ссылка