**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
3天前关闭。
Improve this question
我是C++的初学者,我正在编写一个函数,该函数应该在一组点([x1,.xn]=positions_x,[y1,.yn]=positions_y)中找到与给定点(x0,y0)最近的点。
下面是我的函数:
double nearestPoint(double x, double y)
{
double ind_min = 0;
double xi = 0;
double yi = 0;
double dist_mini = 1000000;
int i;
for (i = 0; i < 50000; i=i+1)
xi = positions_x[i];
yi = positions_y[i];
double a = pow(x-xi,2);
double b = pow(y-yi,2);
if (sqrt(a+b)<=dist_mini)
dist_mini = sqrt(a+b);
ind_min = i;
return ind_min;
}
但是,这总是返回完全相同的点。经过调查,似乎即使sqrt(a+b)更小,“dist_mini”变量的值也保持不变。因此,ind_min保持不变。
如果你有什么想法的话,
谢谢你
1条答案
按热度按时间llmtgqce1#
添加花括号(
{
&}
)以确保所有语句都在for和if块中执行。如果没有花括号,只有第一条语句将在块内。