2012-06-22 42 views
1

编程新手,希望能得到一些指导,我搜索线索,但没有运气。 我写了一个二维数组的代码,我的问题是,我无法得到行和列的数字与元素一起显示...这是最接近我来 现在输出是;Java Array列和行编号

T F F T F F 
0 F F T F F T 
1 F T F F T F 
2 T F F T F F 
3 F F T F F T 
4 F T F F T F 
5 

我需要输出;

0 1 2 3 4 5 
0 T F F T F F 
1 F F T F F T 
2 F T F F T F 
3 F F T F F T 
4 F T F F T F 
5 T F F T F T 

下面的代码: 公共类阵{

public static void main(String[] args) { 
    System.out.print(" "); 
    boolean [][] a; 
    int N = Integer.parseInt(args[0]); 
    a = new boolean [N][N]; 
    for (int i = 0; i<a.length;i++){ 
     for (int j = 0; j<a[0].length;j++){ 
      a[i][j] = true; 
      int sum = (i+j); 

      if (sum%3==0) { 
       System.out.print( "T "); 
      } else { 
       System.out.print( "F "); 
      } 
    } 
     System.out.println(); 
     System.out.print(i + " "); 
    } 
    } 

}

感谢您的帮助。

+2

专业提示:您绝对应该重新格式化您的代码,以便正确缩进,在适当的行上加上大括号等。您还应该注释您的代码以解释每件作品的作用。当事情出错时,它使**大大简化了调试和测试。 – templatetypedef

+1

不完整的复制/粘贴?格式化后,它看起来像缺少一对大括号:http://ideone.com/t8K8T – Lalaland

+0

它看起来不像数组a的目的,因为它只是完全设置为true,而不是用于确定输出的是什么。您显示的代码与您列出的任何一个输出都不匹配。 – billjamesdev

回答

1

在您的代码中,您已经一次打印一行,因此将行号附加到每行的开头(即在打印任何值之前)是微不足道的。

至于列,你需要记住System.out只能从左到右打印,而不能上下打印。所以,在打印数组的其余部分之前,您不需要打印库仑数字。

看到我的评论在此代码:

public static void main(String[] args) { 
    boolean [][] a; 
    int N = Integer.parseInt(args[0]); 
    a = new boolean [N][N]; 

    System.out.print(" "); //print the spacer for the row numbers 
    for (int i = 0; i < N; i++){ 
     System.out.print(i + " "); //print the column number 
    } 

    for (int i = 0; i<a.length;i++){ 
     System.out.print("\n" + i + " "); //new line plus row number 

     for (int j = 0; j<a[0].length;j++){ 
      a[i][j] = true; 
      int sum = (i+j); 

      if (sum%3==0) { 
       System.out.print("T "); 
      } else { 
       System.out.print("F "); 
      } 
     } 
    } 
} 

另外,你的缩进和支架的使用是有点乱(如其他人所说的)。看看我的代码。看看for循环开始的地方有多简单,并且结束了吗?看看它里面有什么容易吗?

+0

这个工作非常好.....谢谢 – user1473714

+0

@ user1473714最重要的部分是没有代码可以工作,它有你理解的代码,确保你通读了代码并理解它在做什么,这就是为什么我把这些注释放在这里,千万不要盲目复制/粘贴 – acattle

+0

谢谢对于凌乱的代码和大括号的提示,我通常会更加整齐地使用大括号,我明白我做错了什么,或者更确切地说,我没有做什么,我现在正在逐行排队,以确保我真的得到了它 – user1473714

3

这段代码没有产生这个输出(你显然没有粘贴所有的代码)。

但是,您的基本问题是您输出之后的行数行数据。改变这一点,你会更接近。

输出一个特殊的“标题行”,你会更接近。

祝您好运,学习编程!


提示:你在这里问得越少,并试图找出自己,你会学得越快越好。