流年孤鹜 2021-12-08 22:23 采纳率: 0%
浏览 39

在矩阵中不同直线个数的求法

蓝桥杯12届B组题C的疑问,在20行,19列的整数坐标轴上,任意两点相连构成一条直线,问不同的直线有几条。
#include <stdio.h>
#include<math.h>
int main()
{
    int total=0,i;
    float x1=0,y1=20,x2,y2; 
    float a,c,k[100000]={0},b[100000]={0};
    for(;y1>=0;x1++)//x1,y1
        {
        x1!=19?(x2=x1+1,y2=y1):(x2=0,y2=y1--);
        for(;y2>=0;x2++)//x2,y2
            {
                if(x1==x2)goto x; 
                a=(y1-y2)/(x1-x2);
                c=y1-(a*x1);
                
                total++;
                for(i=1;i<=total;i++)//查重
                   {
                    if(fabs(k[total]-a)<0.0000001&&fabs(b[total]-c)<0.0000001)
                    {
                     total--;
                     break;
                    }
                }
             if (i==total+1)
                 {
                  k[total]=a;
                  b[total]=c; 
                 } 
                 
         x:     if(x2==19)
                 {
                  y2--;
                  x2=-1;
                 }
            }    
        if(x1==19)
           {
             y1--;
             x1=-1;
            }
          } 
    printf("%d",total+19);
    return 0;
 } 
求得结果为43928,参考答案为40257
遍历所有两点,通过计算斜率a与常数项c来判断直线是否相同,
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • Clarence Liu 2021-12-08 22:54
    关注

    直接求斜率有浮点误差啊

    评论

报告相同问题?

问题事件

  • 创建了问题 12月8日

悬赏问题

  • ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)
  • ¥50 python写segy数据出错
  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥30 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路
  • ¥15 内网办公电脑进行向日葵
  • ¥15 如何输入双曲线的参数a然后画出双曲线?我输入处理函数加上后就没有用了,不知道怎么回事去掉后双曲线可以画出来
  • ¥50 WPF Lidgren.Network.Core2连接问题
  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术