1

编写一个程序,显示乘法表中每个整数的平方和。整数 1-10
来自教授:表中的值应该是 rowNum 的平方加上 colNum 的平方。所以,第一个条目是 2 (rowNum = 1, colNum = 1. 1^2 + 1^2 = 1 + 1 = 2)。下一个条目是 5 (rowNum = 1, colNum = 2. 1^2 + 2^2 = 1 + 4 = 5)。

我的代码除了标题不会打印任何东西。没有计算。表应该是这样的:

    1 2 3 4 5 ....
1 2 5 10 17 26....
2 5 8 13 20 29....
public class Mobilesumcp3ex3 {

    /**
     * @param args the command line arguments
     */

    public static void main ( String [] args )
    {
        // Display a title
        System.out.println( " Sum of Multipication Table" );
        System.out.println( "-------------------" );             


        int num[] = new int[10];          
        int sq[] = new int[10];                
        int sum = 0;              
        for (int i = 0; i < num.length; i++) {                       

            sq[i] = num[i] * num[i];                       
            sum += sq[i];   
        } 
        System.out.println(num+"\t"+sum);
        System.out.println("Sum of the square of numbers: " + sum);    
    }
}
4

3 回答 3

0

数组 num[] 未初始化。所以,sq[i] = num[i] * num[i];有一个问题,因为 num[i] 不存在(那里没有价值)。除此之外,代码看起来不错。

于 2013-03-03T22:12:53.603 回答
0

一些问题:

  • 你不需要数组
  • 您可能需要 2 个循环
  • 你在错误的地方打印
  • 你不需要sum
  • 你永远不会设置num. 当你说

    int num[] = new int[10];
    

    数组中的所有值都将被初始化为 0(或者null如果我们正在处理对象),这就是 Java 所做的(就此而言,我所知道的任何语言都不会自动将数组的值设置为自动递增的值,除非明确告知这样做)。

暗示:

int max = 10;

for (int i = 1; i <= max; i++)
  /* Print each cell of the header row here */

for (int i = 1; i <= max; i++)
{
  /* Print the first column of a row */
  for (int j = 1; j <= max; j++)
    /* Print each cell for this row, which will be (i*i + j*j) */
}
于 2013-03-03T22:20:23.230 回答
0

恕我直言,您的问题是您数组:您不需要它们。

使用迭代逻辑,在这种情况下用num[i]简单i(或类似)替换。解决方案是让循环正确。

于 2013-03-03T22:21:03.337 回答