без abs выдает ошибку что значение под корнем отрицательное хотя это не так.
p и так выводит это по условию надо найти. вот с a b c еще

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

int main()

{
int x1,x2,x3,y1,y2,y3;
double s,p,pp,a,b,c;
cout<<"\n Лабораторная работа № 1";
cout<<"\n Вариант № 21";
cout<<"\n ";
cout<<"\n Введите x1="; cin>>x1;
cout<<" Ввидите y1="; cin>>y1;
cout<<" Введите x2="; cin>>x2;
cout<<" Ввидите y2="; cin>>y2;
cout<<" Ввидите x3="; cin>>x3;
cout<<" Ввидите y3="; cin>>y3;
a = sqrt (abs (((x1-x2)^2+(y1-y2)^2))); cout<<" a=" <<a ;
b = sqrt (abs (((x1-x3)^2+(y1-y3)^2))); cout<<"\n b=" <<b ;
c = sqrt (abs (((x2-x3)^2+(y2-y3)^2))); cout<<"\n c=" <<c ;
p = a+b+c;
cout<<"\n p=" <<p;
pp=p/2;
//Формула Герона
s=sqrt(pp*(pp-a)*(pp- b )*(pp-c));
cout<<"\n s=" <<s;
}