2015年1月19日 星期一

java程式設計題目---數字處理【座標最短距離與座標】

設計一程式,提示使用者輸入座標點數,再依序輸入所有點的二為座標(x,y)。
(a)找出點之間的最短座標。
(b)找出是那些點之間的最短距離。
例如:
輸入:                                                  輸出:
輸入座標點數:3                                 最短距離:2.00
依序輸入3個座標x、y:                      那些點之間距離最短:
0  3                                                     (1,0);(3,0)
1  0
3  0



  1. import java.util.Scanner;
  2.  
  3. public class C1
  4. {
  5.  
  6. public static void main(String[] args)
  7. {
  8. Scanner input = new Scanner(System.in);
  9. //提示使用者輸入並創建array
  10. System.out.println("請輸入座標點數:");
  11. int number = input.nextInt();
  12. int[][] a = new int[number][2];
  13. System.out.println("請輸入座標:");//提示使用者輸入並將座標輸入至array中
  14. for(int i = 0 ; i < a.length ; i++ )
  15. {
  16. for(int j = 0 ; j< a[0].length ; j++ )
  17. {
  18. a[i][j] = input.nextInt();
  19. }
  20. }
  21. double min = Math.pow( ( (a[0][0] - a[1][0]) * (a[0][0] - a[1][0]) ) + ( (a[0][1] - a[1][1]) * (a[0][1] - a[1][1]) ) , 0.5 ) ;
  22. //將最小值預設為第一個點和第二個點的距離
  23. int[][] b = new int [number][4] ; // 預設一個裝最小距離點座標的array
  24. int k = 0;
  25. for(int i = 0 ; i < a.length - 1 ; i++ )//計算最小距離
  26. {
  27. for(int j = i + 1 ; j < a.length ; j++ )
  28. {
  29. int x1 = a[i][0];
  30. int y1 = a[i][1];
  31. int x2 = a[j][0];
  32. int y2 = a[j][1];
  33. double length = Math.pow( ( (x1 - x2) * (x1 - x2) ) + ( (y1 - y2) * (y1 - y2) ) , 0.5 ) ;
  34. if(length == min )
  35. {
  36. b[k][0] = x1; b[k][1] = y1; b[k][2] = x2; b[k][3] = y2 ;
  37. k++;
  38. }
  39. if(length < min)
  40. {
  41. k = 0; min = length;
  42. b[k][0] = x1; b[k][1] = y1; b[k][2] = x2; b[k][3] = y2 ;
  43. k++;
  44. }
  45. }
  46. }
  47. //輸出結果
  48. System.out.println("最短距離:" + min);
  49. System.out.println("那些點之間距離最短:");
  50. for(int i = 0 ; i < k ; i++)
  51. {
  52. System.out.println("(" + b[i][0] + "," + b[i][1] + ") ; (" + b[i][2] + "," + b[i][3] + ")");
  53. }
  54. }
  55.  
  56. }
  57.  

沒有留言:

張貼留言

Go(Golang)程式語言 設定GCC

下載MSYS2:  https://www.msys2.org/ 安裝 程式開始執行後輸入: pacman -Syu y y 在安裝目錄底下找到msys2.exe,雙擊執行 輸入指令: pacman -Su pacman -S --needed base-devel mingw-...