题目是:请问这个代码哪里要改进,我提交一直显示输入为实数 答案错误。

#include<math.h>
int main(void)
{
  float x1,x2,x3,y1,y2,y3;
  scanf("%f %f %f %f %f %f",&x1,&y1,&x2,&y2,&x3,&y3);
  float L,A,x,y,z,p;
  x=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
  y=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
  z=sqrt(pow(x3-x2,2)+pow(y3-y2,2));
  if(x+y>z&&x-y<z)
  {
    L=x+y+z;
    p=L/2.0;
   A = sqrt( p * (p - x) * (p - y) * (p - z) );
    printf("L = %.2f, A = %.2f",L,A);
  }
  else
  printf("Impossible");
  return 0;


}

这是PTA上的问题吧,我也遇到过,只要把坐标的类型改成double型就可以了

添加上iostream头文件,把scanf改为scanf_s试试

添加stdio.h头文件,去掉void,要输够6个数字