Programavimas C++ ir trikampio ploto skaičiavimas

sveiki, reikia parašyti programą, kuri apskaičiuotų trikampio plotą kai duotos viršiūnių koordinatės. Štai mano parašyta programa, tačiau gaunu neteisinga atsakymą, gal žinote kur yra klaida?

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main ()
{
  int x1, y1, x2, y2, x3, y3;
  cout<<"Iveskite trikampio virsunes koordinates "<<endl;
  cin>>x1>>y2>>x2>>y2>>x3>>y3;
  double a, b, c, S;
  a=((x2-x1)*1.0)+((y3-y1)*1.0);
  b=((x3-x1)*1.0)*((y2-y1)*1.0);
  c=(a+b)/2;
  S=abs(c);
  cout<<"Trikampio plotas lygus "<<setprecision (1)<<fixed<<S;
  return 0;
}

Paskutinį kartą atnaujinta 2017-10-01

0

peržiūros 209

atsakymai 1

aktyvumas 2 mėn

Kai suvedi koordinates, y2 kartojasi du kartus. Klaidingai skaičiuojama reikšmė "a" kintamajame, kažkodėl sudedi o ne daugini. Manau naudoji daug nereikalingų kintamujų, kurie užkimša atmintį ir nežinau ar kažkuom tau padeda, nes užvadinti belenkaip "a", "b", pavadinimai kurie nieko nepasako kas čia yra daroma. Kintamujų tipai tūri būti float. Kintamuosius reikia apsibrėžti viršuje, o ne vidury funkcijos. Mano variantas būtų toks:
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main ()
{
  float x1, y1, x2, y2, x3, y3;
  double area;
  cout<<"Iveskite trikampio virsunes koordinates "<<endl;
  cin>>x1>>y1>>x2>>y2>>x3>>y3;
  area = abs(((x2-x1)*(y3-y1) - (x3-x1)*(y2-y1))/2.0);
  cout<<"Trikampio plotas lygus "<<setprecision (1)<<fixed<<area;
  return 0;
}

Paskutinį kartą atnaujinta 2017-10-01

0

Norėdami rašyti žinutes privalote prisijungti!