李小小白 2017-01-15 15:47 采纳率: 100%
浏览 914
已采纳

杭电acm1007,不考虑运行时间问题,我的代码错在哪?

#include
#include
#include
using namespace std;
int main()
{
int N,i,j,k=0;

double min;
while (cin >> N&&N)
{
double x = new double[N];
double *y = new double[N];
double *d = new double[N
(N-1)];
for (i = 0; i < N; i++)
cin >> x[i] >> y[i];
for (i = 0; i < N-1; i++)
{
for (j = i + 1; j < N; j++)
{
if (x[i] == x[j] && y[i] == y[j]) d[k] = 0;
else d[k] = (x[i] - x[j])*(x[i] - x[j]) + (y[i] - y[j])*(y[i] - y[j]);
k++;
}
}
min = d[0];
for (k = 0; k < N*(N - 1) / 2; k++)
if (min > d[k]) min = d[k];
if(min!=0) min = sqrt(min)/2;
cout << setprecision(2) << fixed << min << endl;
delete []x, y, d;
}
return 0;
}
连续输入两次数据:
2
1 1
1 1
为什么第一次是0.00,第二次是-nan(ind)

  • 写回答

1条回答

  • shen_wei 2017-01-16 07:20
    关注
     int main()
    {
        int N,i,j,k=0;
    
        double min;
        while (cin >> N&&N)
        {
            double *x = new double[N];
            double *y = new double[N];
            double *d = new double[N-1];
            for (i = 0; i < N; i++)
                cin >> x[i] >> y[i];
            for (i = 0; i < N-1; i++)
            {
                for (j = i + 1; j < N; j++)
                {
                    if (x[i] == x[j] && y[i] == y[j]) 
                        d[k] = 0;
                    else 
                        d[k] = (x[i] - x[j])*(x[i] - x[j]) + (y[i] - y[j])*(y[i] - y[j]);
                    k++;
                }
            }
            min = d[0];
            for (k = 0; k < N*(N - 1) / 2; k++)
            {
                if (min > d[k]) 
                    min = d[k];
            }
            if(min!=0) 
                min = sqrt(min)/2;
            cout << setprecision(2) << fixed << min << endl;
            k = 0;  ////////////////////////
            delete x, y, d;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线