Цитата:
Сообщение от DeviL_Hell99
это правильно ?
|
Нет!
1. Зачем для определителей и искомых величин использовать одни и те же переменные? Что мешает, как я предлагаю, ввести
int x, y, a1, a2, b1, b2, c1, c2, det,detX,detY;
2. Тогда определители запишутся так:
det = a1*b2 - a2*b1;
detX= c1*b2 - c2*b1;
detY= a1*c2 - a2*c1;
3. Вот это:
Цитата:
cout << 'x==',c1*b2-c2*b1/ a1*b2 - a2*b1;
cout << 'y==', a1*c2 - a2*c1/ a1*b2 - a2*b1;
|
совсем никуда не годится! Потому что без скобок машина поймёт это так:
В первой строке сосчитает c1*b2, затем из полученного результата вычтет (c2*b1/ a1*b2) и, наконец, вычтет a2*b1. Правильно так:
cout << 'x==',(c1*b2 - c2*b1)/(a1*b2 - a2*b1);
cout << 'y==',(a1*c2 - a2*c1)/(a1*b2 - a2*b1);
3. Но главное — если уж Вы уже сосчитали определители, зачем же это делать повторно?! Можно просто и компактно:
if (det >= 0.0001);
{тут, правда, надо не det, a |det|. Как это оформить в СИ — не знаю, Вы уж сами}
{
cout << 'x==', detX/det;
cout << 'y==', detY/det;
}
(За правильность СИ-шного синтаксиса не отвечаю, но, в принципе, как-то так).