我想用简单的循环和数组创建一个简单的java程序。它应该是乘法表。
如果行为3且列为5,那么它应该显示行,列并且在矩阵内部应该给出行和列的乘法。输出应该是这样的。
1 2 3 4 5
1 1 2 3 4 5
2 2 4 6 8 10
3 3 6 9 12 15
我想用简单的循环创建。我是java的新手,所以我无法弄清楚我该怎么做。请让我知道。
我已经完成了代码,直到这里。
import java.util。*;
class cross_multiplication
{
public static void main(String a[])
{
System.out.println("How many rows required? : ");
Scanner in1 = new Scanner(System.in);
int num_rows = in1.nextInt();
System.out.println("How many cols required? : ");
Scanner in2 = new Scanner(System.in);
int num_cols = in2.nextInt();
//int arr1 [] = new int[num_rows];
//int arr2 [] = new int[num_cols];
for(int i=0;i<num_rows;i++)
{
if (i==0)
{
System.out.print("");
}
else
{
System.out.print(i);
}
System.out.print("\t");
}
}
}
由于
答案 0 :(得分:3)
您可以尝试这样的事情:
private static void print(final int[][] table){
for(int r = 0; r < table.length; r++){
for(int c = 0; c < table[r].length; c++){
System.out.printf("%d\t", table[r][c]);
}
System.out.println();
}
}
private static int[][] table(final int rows, final int columns){
final int[][] array = new int[rows][columns];
for(int r = 1; r <= rows; r++)
for(int c = 1; c <= columns; c++)
array[r-1][c-1] = r * c;
return array;
}
从上面的代码中,如果要打印10x10乘法表,可以这样做:
print(table(10, 10));
输出看起来像这样:
答案 1 :(得分:1)
我不会给你答案,但我会给你一些伪代码
您确实正确设置了2个循环
Loop x = 1 to 3
Loop y = 1 to 3
//Do stuff
End innerloop
End outerloop
这将以直线单行打印您的所有解决方案。但是你希望它显然在矩阵中。答案是简单的简单改变,只需要一行代码。在内循环的每个完整循环之后,你基本上完成了一行乘法(想想为什么)。因此解决方案是在内循环完成运行之后,在转到x的下一个外循环值之前,您需要打印一个新行。总而言之,我们有类似的东西:
Loop x = 1 to 3
Loop y = 1 to 3
z = x * y
Print z + " "
End innerloop
Print NewLine // "\n" is the way to do that
End outerloop
并尝试
public static void print(int x, int y) {
for (int i = 1; i <= x; i++) {
for (int j = 1; j <= y; j++) {
System.out.print(" " + i * j);
}
System.out.println();
}
}
答案 2 :(得分:1)
要包含标题,您需要检查您是在第0行(j == 0
)还是第0列(i == 0
)。如何执行此操作的示例:
public static void print(int x, int y) {
for (int i = 0; i <= x; i++) {
for (int j = 0; j <= y; j++) {
if(i==0) { // first row
if(j>0) {
System.out.printf("%d\t", j);
}
else { // first row, first column: blank space
System.out.printf("\t");
}
}
else {
if(j == 0) { // first column
System.out.printf("%d\t", i);
}
else { // actually in the body of the table - finally!
System.out.printf("%d\t" i * j);
}
}
}
System.out.println();
}
}