【问题描述】给定平面任意两点的坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数)。要求求距离的运算单独放在一个函数中,然后在main函数中调用。
【输入形式】输入两点的坐标(x1,y1)和(x2,y2)
【输出形式】两点间的距离
【样
【问题描述】给定平面任意两点的坐标(x1,y1)和(x2,y2),求这两点之间的距离(保留两位小数)。要求求距离的运算单独放在一个函数中,然后在main函数中调用。
【输入形式】输入两点的坐标(x1,y1)和(x2,y2)
【输出形式】两点间的距离
【样例输入】81 5 84 9
【样例输出】5.00
我的编程如下,但是学校课程平台一直不通过,平台反馈也贴在下面,求各位大神,急急急!!!
#include
#include
double dist(double x1,double x2,double y1,double y2)
{
double distance;
distance=sqrt((x1-x2)*(x1-x2) (y1-y2)*(y1-y2));
return distance;
}
int main(void)
{
double x1,x2,y1,y2,distance;
printf("Input(x1,y1): ");
scanf("%lf %lf",&x1,&y1);
printf("Input(x2,y2): ");
scanf("%lf %lf",&x2,&y2);
distance=dist(x1,x2,y1,y2);
printf("distance=%.2f,%f
",distance,a);
return 0;
}
反馈如下
详细评判结果
动态测试
编译通过, 共有1个警告
sq1.c: In function 'int main()':
sq1.c:8:38: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%f %f %f %f",&x1,&y1,&x2,&y2);
^
测试数据 测试结果
测试数据1 输出错误
错误输出:
??????????????x1 y1 x2 y2
???????????5.000000
--------------------------------------------------------------------------------
期望输出:
5.00
测试数据2 输出错误
错误输出:
??????????????x1 y1 x2 y2
???????????8.602325
--------------------------------------------------------------------------------
期望输出:
8.60
测试数据3 输出错误
错误输出:
??????????????x1 y1 x2 y2
???????????2.828427
--------------------------------------------------------------------------------
期望输出:
2.83
测试数据4 输出错误
错误输出:
??????????????x1 y1 x2 y2
???????????5.000000
--------------------------------------------------------------------------------
期望输出:
5.00
测试数据5 输出错误
错误输出:
??????????????x1 y1 x2 y2
???????????33.541019
--------------------------------------------------------------------------------
期望输出:
33.54
代码静态分析
共发现 2个问题.
sq1.c:7:(Urgent) printf
/usr/local/coursework/workspace/judgesrc/assign/21/128/1384/
sq1.c:10:(Urgent) printf
Non-constant format strings can often be attacked.
Use a constant format string.
----------------
到底是哪里错了,求求求各位大神!!急啊!
展开
全部