2015年1月19日 星期一

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

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



import java.util.Scanner;

public class C1 
{

 public static void main(String[] args) 
 {
  Scanner input = new Scanner(System.in);
  
  //提示使用者輸入並創建array
     System.out.println("請輸入座標點數:");
     int number = input.nextInt();
     int[][] a = new int[number][2]; 
     
     System.out.println("請輸入座標:");//提示使用者輸入並將座標輸入至array中
     for(int i = 0 ; i < a.length ; i++ )
     {
      for(int j = 0 ; j< a[0].length ; j++ )
      {
       a[i][j] = input.nextInt();
       
      }
      
     }
     
     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 ) ;
     
     //將最小值預設為第一個點和第二個點的距離
     
     int[][] b = new int [number][4] ; // 預設一個裝最小距離點座標的array
    
     int k = 0;
    
     for(int i = 0 ; i < a.length - 1 ; i++ )//計算最小距離
     {
      for(int j = i + 1 ; j < a.length ; j++ )
      {
       int x1 = a[i][0];
       int y1 = a[i][1];
       int x2 = a[j][0];
       int y2 = a[j][1];
       
       
       double length = Math.pow( ( (x1 - x2) * (x1 - x2) ) + ( (y1 - y2) * (y1 - y2) ) , 0.5 ) ;
       
       
       if(length == min )
       {         
         b[k][0] = x1; b[k][1] = y1; b[k][2] = x2; b[k][3] = y2 ;
         k++;
       }
       if(length < min)
       {
        k = 0; min = length;        
        b[k][0] = x1; b[k][1] = y1; b[k][2] = x2; b[k][3] = y2 ;
        k++;
       }        
      }
            
     }
     
     //輸出結果
     System.out.println("最短距離:" + min);
     System.out.println("那些點之間距離最短:");
     for(int i = 0 ; i < k  ; i++)
     {
      System.out.println("(" + b[i][0] + "," + b[i][1] + ") ; (" + b[i][2] + "," + b[i][3] + ")");
     }
     
 }

}

沒有留言:

張貼留言

Go(Golang)程式語言 設定GCC

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