我最亲爱的说

子非鱼,焉知鱼之乐.

导航

编程实践5-10

编程实践5-10

课程元素类型 任务

用二维数组的形式,描述空间的n个点,计算距离最近的两个点,输出空间坐标及距离。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dian
{
    class Program
    {
        static void Main(string[] args)
        {
            double[,] a;
            double d,max;
            int b,p1,p2;
            Console.WriteLine("请输入点的个数:");
            b = Convert.ToInt16(Console.ReadLine());
            a = new double[b, 2];
            for (int i = 1; i <= b; i++)
            {
                Console.Write("请输入第{0}点的横坐标:", i + 1);
                a[i, 0] = Convert.ToDouble(Console.ReadLine());
                Console.Write("请输入第{0}点的纵坐标:", i + 1);
                a[i, 1] = Convert.ToDouble(Console.ReadLine());
            }
            max = 0;
            p1 = 0;
            p2 = 0;
            for (int i = 0; i < a.GetLength(0) - 1; i++)
            {
                for (int j = i + 1; j < a.GetLength(0); j++)

                {
                    d = Math.Sqrt((a[j, 0] - a[i, 0]) * (a[j, 0] - a[i, 0]) + (a[j, 1] - a[i, 1]) * (a[j, 1] - a[i, 1]));
                    if (d > max)
                    {
                        max = d;
                        p1 = i;
                        p2 = j;
                    }
                }
            }
            Console.WriteLine("第{0}个点({1},{2})与第{3}个点({4},{5})之间的距离最大,为{6}", p1 + 1, a[p1, 0],a[p1, 1], p2 + 1, a[p2, 0], a[p2, 1], max);
            Console.ReadKey();
        }
    }
}

 

posted on 2012-12-04 11:09  我最亲爱的说  阅读(132)  评论(0编辑  收藏  举报