【发布时间】:2020-09-22 15:19:57
【问题描述】:
我正在编写代码来查找点 (25,40000) 与固定点 (47,132000) 的距离。距离始终打印为 0.0000。 我试过检查其他组合,给出较小的点值,然后用 %d 打印它们,效果很好。 但是对于 %ld,%lf,%Lf 有什么不好。请帮忙。
#include<stdio.h>
#include<math.h>
int main()
{
int x=25,y=40000;
//printf("Enter x,y");
//scanf(%d %d,&x,&y)
long double dist;
dist=sqrt((47-x)*(47-x)+(132000-y)*(132000-y));
printf(" x= %d y=%d dist=%Lf\n",x,y,dist);
return 0;
}
【问题讨论】:
-
将变量的int类型从int改为long long int。
-
您是否查看过实际传递给
sqrt的值?如果这不是您所期望的,我不会感到惊讶。 -
你有很多错别字,你应该注意这一点。
-
但是,从编辑器中复制代码以确保它可以编译。创建minimal reproducible example
-
请复制/粘贴您的确切代码,Minimal Reproducible Example,这是显示问题的最短完整代码。不是您认为可能相同的东西。
标签: c double long-double