0
以下兩種方法(sortRows和sortColumns)應該返回一個rList
和cList
的二維數組,但我相信我宣稱它是錯誤的。從方法返回二維數組的正確語法
在我嘗試打印它的主底部;該數組不返回到主方法。
在主:
RLIST和CLIST不能被解析到一個變量。
public class Markov {
public static void main(String[] args) {
double[][] matrix = new double[3][3];
int r, c;
double val;
String inputV;
// asks user for values
for (c = 0; c < 3; c++)
for (r = 0; r < 3; r++) {
inputV = JOptionPane.showInputDialog("Enter value for row # " + (r + 1) + " , column # " + (c + 1));
val = Double.parseDouble(inputV);
matrix[c][r] = val;
}
if (ValidateMarkov(matrix) == false) {
System.out.println(" Invalid Markov, values must be postive, colummn values must sum to 1.0 ");
} else {
System.out.println("Valid Markov");
}
SortRows(matrix);
SortColumns(matrix);
// Prints the matrices
for (r = 0; r < 3; r++) {
System.out.println();
for (c = 0; c < 3; c++) {
System.out.print(" " + matrix[r][c] + " ");
}
}
for (r = 0; r < 3; r++) {
System.out.println();
for (c = 0; c < 3; c++) {
System.out.print(" " + rTemp[r][c] + " ");
}
}
for (r = 0; r < 3; r++) {
System.out.println();
for (c = 0; c < 3; c++) {
System.out.print(" " + cTemp[r][c] + " ");
}
}
}
public static boolean ValidateMarkov(double[][] n) {
double sum;
for (int c = 0; c < 3; c++) {
sum = 0;
for (int r = 0; r < 3; r++) {
if (n[c][r] < 0) {
return false;
}
sum += n[c][r];
}
if (sum != 1) {
return false;
}
}
return true;
}
public static double[][] SortRows(double[][] m) {
int r, c;
double[][] rTemp = new double[3][3];
for (r = 0; r < 2; r++)
for (c = 0; c < 2 - c; c++)
if (m[r][c] > m[r][c + 1]) {
rTemp[r][c] = m[r][c];
m[r][c] = m[r][c + 1];
m[r][c + 1] = rTemp[r][c + 1];
}
return rTemp;
}
public static double[][] SortColumns(double[][] n) {
int r, c;
double[][] cTemp = new double[3][3];
for (c = 0; c < 2; c++)
for (r = 0; r < 2 - r; r++)
if (n[c][r] > n[c][r + 1]) {
cTemp[c][r] = n[c][r];
n[c][r] = n[c][r + 1];
n[c][r + 1] = cTemp[c][r + 1];
}
return cTemp;
}
}
什麼是錯誤?你也可以格式化你的代碼?編輯:它編譯罰款給我,沒有錯誤。 –
在您的問題中包含錯誤信息? –