*錯誤1 *
Java數組從0開始,因此第一改變到:
for(int i=0;i < m ; i++){
當然,在公式中使用的數組索引和變量可以不同....
so或者以0開始循環,並在函數中使用(i-1)。 或使所述陣列的可讀性,使用矩陣[I-1] [j-1]開始數組索引在第0
但由於這樣的:
double [][] matrix =new double [m][m];
需要在開始索引0和的情況下,M = 8
在索引7停止otherwhise你得到一個出數組索引異常
相同爲當然j的
*建議2 * 增量既i和j在for循環,使它更具可讀性
for(int i=0;i < m ; i++){
for(int j=0;j < m ; j++){
// the code on a i,j cell
}
}
*錯誤3 * 並在你需要的,如果(做在開關代替呢? )和比較equalty
使用==而不是=
if(i=j){
應該是
if(i==j){
在這種情況下,你必須考慮:
if(i==j){
//
} else {
//
}
開關是這樣的:
switch(variable){
case 1:
// in case variable is one
break;
default:
break;
}
和你錯過了休息
*一般性建議*
我可能會說我正在調試.... 。很多錯誤的......這麼短的代碼....
條代碼,非常基本的,看看會發生什麼,使用一個很好的工具逐步執行代碼(IDE)....
我甚至沒有運行你的代碼....只是看着它...
* IDEone。COM *
我把這個JAV上ideone,和它的作品:
http://ideone.com
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
int m=8;
double [][] matrix =new double [m][m];
for(int i=1;i<=m;i++){
for(int j=1;j<=m;j++){
if(i==j){
matrix[i-1][j-1]= Math.sin(i)*Math.sin(i);
}else{
matrix[i-1][j-1]= Math.sin(i)*Math.sin(j);
}
System.out.print(matrix[i-1][j-1] + " ");
}
System.out.print("\n\r");
}
}
}
看到http://ideone.com/aZrT1x
「*我爲卡*」 是不妥當的問題說明。 (1)具有相同問題的人如何能夠找到這個問題? (2)我們應該如何理解它?請描述您遇到的特定問題,如錯誤/異常/錯誤結果。 – Pshemo