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 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料