C语言编‘写用二维数组判断五个坐标是否在同一直线上’
答案:1 悬赏:50 手机版
解决时间 2021-02-23 16:22
- 提问者网友:贪了杯
- 2021-02-22 15:34
C语言编‘写用二维数组判断五个坐标是否在同一直线上’
最佳答案
- 五星知识达人网友:时间的尘埃
- 2021-02-22 17:13
#include
int main()
{
float point[5][2]={{2,3},{3,4},{5,5},{6,5},{8,5}};
float k;
k=(point[0][1]-point[1][1])/(point[0][0]-point[1][0]);
for(i=2;i<5;i++)
{
ki=(point[0][1]-point[i][1])/(point[0][0]-point[i][0]);
if (ki!==k)
{
printf("这5个点不在同一直线上
");
break;
}
}
if(i>=5) printf("这5个点在同一直线上
");
return 0;
}解题思路:求两点(a和b)连线的斜率为(ya-yb)/(xa-xb),因此先用前两个点计算一个斜率k,然后分别计算第1个点和剩下3个点的连线斜率ki,如果ki==k,表示它们在同一条直线上,否则就不在同一条直线上
追问编译不通过,我稍微改了一下,谢谢追答不好意思,直接写没有注意,漏了变量ki的声明
int main()
{
float point[5][2]={{2,3},{3,4},{5,5},{6,5},{8,5}};
float k;
k=(point[0][1]-point[1][1])/(point[0][0]-point[1][0]);
for(i=2;i<5;i++)
{
ki=(point[0][1]-point[i][1])/(point[0][0]-point[i][0]);
if (ki!==k)
{
printf("这5个点不在同一直线上
");
break;
}
}
if(i>=5) printf("这5个点在同一直线上
");
return 0;
}解题思路:求两点(a和b)连线的斜率为(ya-yb)/(xa-xb),因此先用前两个点计算一个斜率k,然后分别计算第1个点和剩下3个点的连线斜率ki,如果ki==k,表示它们在同一条直线上,否则就不在同一条直线上
追问编译不通过,我稍微改了一下,谢谢追答不好意思,直接写没有注意,漏了变量ki的声明
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯