using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Point { class Program { static void Main(string[] args) { int n; double x; double[,] pt; int i, j; double dblmax; int p1, p2; Console.Write("请输入点的个数:"); n = Convert.ToInt32(Console.ReadLine()); pt = new double[n, 2]; for (i = 0; i < pt.GetLength(0); i++) { Console.Write("请输入第{0}点的横坐标:", i + 1); pt[i, 0] = Convert.ToDouble(Console.ReadLine()); Console.Write("请输入第{0}点的纵坐标:", i + 1); pt[i, 1] = Convert.ToDouble(Console.ReadLine()); } dblmax = 0; p1 = 0; p2 = 0; for (i = 0; i < pt.GetLength(0) - 1; i++) { for (j = i + 1; j < pt.GetLength(0); j++) { x = bz(pt[i, 0], pt[j, 0], pt[i, 1], pt[j, 1]); if ( x > dblmax) { dblmax = x; p1 = i; p2 = j; } } } Console.WriteLine("第{0}个点({1},{2})与第{3}个点({4},{5})之间的距离最大,为{6}", p1 + 1, pt[p1, 0], pt[p1, 1], p2 + 1, pt[p2, 0], pt[p2, 1], dblmax); Console.ReadKey(); } public static double bz(double x1,double x2,double y1,double y2) { return Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); } } }