2017-09-04 4 views
-2

セル(n、m)= F(n、m)からF(1,1)までの所定の行列上のパスを最も高い値を持つセルがそのセルに1を入れ、そのセルへのポインタを移動します。タイがある場合には選択されていないセルに0を入れ、cell(1,1)まで繰り返します。撮影パス。 私は& &を||に変更しようとしました。 whileループではエラーが発生し、出力に変更はありません。出力は パス取られ (4,4) (3,4) (3,3) (3,2) (3,1)ループマッピングでは、2つの行列が早期に終了すると考えていました。

出力は パスが取られるべきである (4 、4) (3,4) (3,3) (3,2) (3,1) (2,1) (1,1)

public class JavaApplication6 { 
    /** 
    * @param i 
    * @param j 
    */ 
    public static void paste(int i,int j){ 
    System.out.println("("+i+","+j+")"); 
} 
    public static void main(String[] args) { 
     System.out.println("path taken"); 
     int[][] F = 
{{0,0,50,150}, 
{100,200,700,900}, 
{600,1650,1200,1250}, 
{1100,1200,1200,1250}}; 
     int rowLen = 4; 
     int columnLen = 4; 
int i=rowLen-1; 
int j=columnLen-1; 
paste(i+1,j+1); 
while(i!=0&&j!=0){ 
    if(F[i-1][j]>F[i][j-1]){ 
     i=i-1; 
     paste(i+1,j+1); 
    } 
    else if(F[i-1][j]<F[i][j-1]){ 
     j=j-1; 
     paste(i+1,j+1); 
    } 
    else if(F[i-1][j]==F[i][j-1]){ 
     j=j-1; 
     paste(i+1,j+1); 
    }  
} 

}} 
+0

に動作します:何かを意味変数名を使用します。 Fが 'F'とは何ですか? – GhostCat

+0

デバッグヘルプ(「なぜこのコードは動作しませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体に再現するのに必要な最短コードが含まれている必要があります。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:[mcve]を作成する方法。あなたの*質問を改善するために "編集"リンクを使用してください - コメントでより多くの情報を追加しないでください。ありがとう! – GhostCat

+0

のように:プログラムは何をする予定ですか? – GhostCat

答えて

0

FIXED IT !!!

これははい

public class JavaApplication6 { 
    /** 
    * @param i 
    * @param j 
    */ 
    public static void paste(int i,int j){ 
    System.out.println("("+i+","+j+")"); 
} 
    public static void main(String[] args) { 
     System.out.println("path taken"); 
     int[][] F = 
{{0,0,50,150}, 
{100,200,700,900}, 
{600,1650,1200,1250}, 
{1100,1200,1200,1250}}; 
     int rowLen = 4; 
     int columnLen = 4; 
int i=rowLen-1; 
int j=columnLen-1; 
paste(i+1,j+1); 
while(i>0||j>0){ 
    if(j>0&&F[i-1][j]>F[i][j-1]){ 
     i--; 
     paste(i+1,j+1); 
    } 
    else if(j>0&&F[i-1][j]<F[i][j-1]){ 
     j--; 
     paste(i+1,j+1); 
    } 
    else if(j>0&&F[i-1][j]==F[i][j-1]){ 
     i--; 
     paste(i+1,j+1); 
    } 
    /*new code*/ 
    else if(j==1||F[i-1][j]<F[rowLen - 1][columnLen - 1]-1){  
     i=i-1; 
     F[rowLen - 1][columnLen - 1]--; 
     paste(i+1,j+1); 

    } 
    }}} 
関連する問題