Вопрос Задача на C++. Выдает ошибку. Помогите исправить

Регистрация
29 Июл 2013
Сообщения
87
Репутация
2
Спасибо
2
Монет
0
Написал код но он в 2х из 70 случаев выдает неверный результат (какие случаи - неизвестно)

Задание:
При решении задачи не используйте строковых или символьных переменных и циклов. Задачу необходимо решить используя ветвления, числовые типы данных и встроенные в язык операции по работе с ними.

На прямой заданы целочисленные точки x1, x2, x3 и x4. Любые две или более точек могут совпадать. Целочисленная точка называется хорошей, если она лежит на пути из x1 в x2 и на пути из x3 в x4 одновременно. Выведите количество хороших точек.

Входные данные
В единственной строке входного файла заданы 4 целых числа x1, x2, x3 и x4 (-109 ≤ x1, x2, x3, x4 ≤ 109) — координаты точек.

Выходные данные
Выведите единственное число — количество хороших точек.

Пример
input:1 3 2 4 output: 2
input:1 3 3 4 output: 1

Задача

#include
using namespace std;

int main()
{
int x,x1,x2,x3,x4,i;
cin >>x1>>x2>>x3>>x4;

меняем местами x1 c x2 или x3 c x4 при не возрастающей последовательности
if (x1>x2) {x=x1;x1=x2;x2=x;};
if (x3>x4) {x=x3;x3=x4;x4=x;};

if (((x1>x3)&&(x1>x4)&&(x2>x3)&&(x2>x4))||((x1<x3)&&(x1<x4)&&(x2<x3)&&(x2<x4))) i=0;
else{//рассматриваем случай (x3 x4 x1 x2, x1 x2 x3 x4)

if (((x1==x3)&&(x2==x4))||((x1==x4)&&(x2==x3))||((x1<=x3)&&(x1<=x4)&&(x3<=x2)&&(x4<=x2))) i=abs(abs(x4)-abs(x3))+1;
else{// рассматриваем случай (x1=x3 x2=x4, x1=x4 x2=x3, x1 x3 x4 x2)

if ((x3<=x1)&&(x3<=x2)&&(x1<=x4)&&(x2<=x4)) i=abs(abs(x2)-abs(x1))+1;
else{// рассматриваем случай (x3 x1 x2 x4)

if (((x1==x4)&&(x3<=x1)&&(x3x4))||((x1<=x2)&&(x2==x3)&&(x4>=x2)&&(x4>x1))) i=1;
else{//рассматриваем случай (x3 x4=x1 x2, x1 x2=x3 x4)

if ((x3x4)&&(x4>=x1)) i=abs(abs(x4)-abs(x1))+1;
else{//рассматриваем случай (x3 x1 x4 x2)

if ((x4>x2)&&(x3>x1)&&(x2>x3)) i=abs(abs(x2)-abs(x3))+1;
else{//рассматриваем случай (x1 x3 x2 x4)
}
};
};
};
};
};
cout << i;
}
 
Эта программа не компилируется. C2065 x3x4: необъявленный идентификатор --- Всё ещё не компилируется, ошибка та же.
 
Назад
Сверху