老张的战场 2017-05-24 05:21 采纳率: 33.3%
浏览 826

江湖救急,用C编程解决椭圆问题

图片说明

  • 写回答

1条回答 默认 最新

  • 老张的战场 2017-05-24 05:28
    关注

    这是一个没有完成问题的答案:
    #include
    #include
    #include
    void f(float x1,float x2,float y1,float y2,float a)
    {
    float f1f2,b,c,m,n,k,angle;
    int i,j;
    float p[100][2]
    f1f2=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
    c=f1f2/2;
    if(c>=a)
    printf("输入的数据不合理");
    else
    {
    b=sqrt(a*a-c*c);
    k=(y2-y1)/(x2-x1);
    angle=atan(k);
    m=(x1+x2)/2;
    n=(y1+y2)/2;
    for(i=0;i<50;i++)
    {
    x=(-a)+(i+1)*2*a/51;
    yz=b*sqrt(1-x*x/a/a);
    yf=-yz;
    p[i][0]=(x+m)*cos(angle)+(yz+n)*sin(angle);
    p[i][1]=(yz+n)*cos(angle)-(x+m)*sin(angle);
    p[i+50][0]=(x+m)*cos(angle)+(yf+n)*sin(angle);
    p[i+50][1]=(yf+n)*cos(angle)-(x+m)*sin(angle);
    }
    for(j=0;j<100;j++)
    printf("(x%d,y%d)=(%f,%f)",j+1,j+1,p[j][0],p[j][1];
    }
    }
    int main(void)
    {
    float x1,x2,y1,y2,a;
    int i;
    printf("请输入椭圆的焦点:(x1,y1),(x2,y2)和a值:");
    scanf("%f%f%f%f%f",&x1,&x2,&y1,&y2,&a);
    f(x1,x2,y1,y2,a);
    system("pause");
    return 0;
    }
    求教bug如何改,或者另给出一个,小弟感激不尽。

    评论

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码