通过一个点的最大不同直线数在C中

2023年 8月 28日 82.7k 0

通过一个点的最大不同直线数在C中

让我们通过示例来理解。

输入 

Line 1 (x1,y1)=(4,10) (x2,y2)=(2,2)
Line 2 (x1,y1)=(2,2) (x2,y2)=(1,1)

登录后复制

输出

Maximum lines: 2

登录后复制登录后复制

解释 - 总线数为 2。两条线的斜率不同。

输入 

Line 1 (x1,y1)=(1,5) (x2,y2)=(3,2)
Line 2 (x1,y1)=(2,7) (x2,y2)=(2,8)

登录后复制

输出

Maximum lines: 2

登录后复制登录后复制

说明 - 总线数为 2。两者都有不同的斜率。

下面程序中使用的方法如下

  • 整数数组 x1[] 和 x2[] 用于存储线上点的坐标。

  • 函数 numLines(int x1[],int y1[], int x2[], int y2[]) 正在计算经过单个点的线数。

  • 对 x1[] 中的每个点应用公式,y1[],x2[],y2[] 计算斜率并使用 k 增加斜率计​​数。

  • 数组 s[] 存储斜率值。

    >

  • 返回 k 作为结果中的行数。

示例

 实时演示

#include
int numLines(int n, int x1[], int y1[], int x2[], int y2[]){
double s[10];
int k=0;
double slope;
for (int i = 0; i < n; ++i) {
if (x1[i] == x2[i])
slope = 999;
else
slope = (y2[i] - y1[i]) * 1.0 / (x2[i] - x1[i]) * 1.0;
s[k++]=slope;
}
return k;
}
int main(){
int n = 2;
int x1[] = { 1, 5 }, y1[] = { 3, 2 };
int x2[] = { 2,7 }, y2[] = { 2, 8 };
printf("Maximum lines: %d", numLines(n, x1, y1, x2, y2));
return 0;
}

登录后复制

输出

如果我们运行上面的代码,它将生成以下输出 -

Maximum distinct lines passing through a single point : 2

登录后复制

以上就是通过一个点的最大不同直线数在C中的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论