有人可以帮我修复我的代码吗?我正在尝试使用2d数组制作一个三角形
public class Tri {
public static void main(String [] args){
int rows;
int columns;
int i,j;
int [][] arrayNumbers = new int[5][5];
arrayNumbers[0][0] = " ";
arrayNumbers[1][0] = " ";
arrayNumbers[2][0] = "*";
arrayNumbers[3][0] = " ";
arrayNumbers[4][0] = " ";
arrayNumbers[0][1] = " ";
arrayNumbers[1][1] = "*";
arrayNumbers[2][1] = "*";
arrayNumbers[3][1] = "*";
arrayNumbers[4][1] = " ";
arrayNumbers[0][2] = "*";
arrayNumbers[1][2] = "*";
arrayNumbers[2][2] = "*";
arrayNumbers[3][2] = "*";
arrayNumbers[4][2] = "*";
arrayNumbers[0][3] = " ";
arrayNumbers[1][3] = "*";
arrayNumbers[2][3] = "*";
arrayNumbers[3][3] = "*";
arrayNumbers[4][3] = " ";
arrayNumbers[0][4] = " ";
arrayNumbers[1][4] = " ";
arrayNumbers[2][4] = "*";
arrayNumbers[3][4] = " ";
arrayNumbers[4][4] = " ";
for(i=0;i<rows;i++){
for(j=0;j<columns;j++) {
System.out.print(arrayNumbers[i][j] + " ");
}
System.out.println(" ");
}
}
}
但我不断收到错误消息“Java:不兼容的类型:java.lang.String无法转换为int
知道我哪里出错了吗?它一直说它需要一个int,但它只找到了一个String
答案 0 :(得分:1)
您正在为数组分配String
值。所以这个
int [][] arrayNumbers = new int[5][5];
应该是
String[][] arrayNumbers = new String[5][5];
或您需要指定int
值(例如1
,2
或2 31 -1)。< / p>
答案 1 :(得分:1)
实际上,无论如何,这应该用EXTRA_CFLAGS := -ggdb -O3
EXTRA_CFLAGS += -Wall
DEFINES := -DMY_DEFINE
SRCS := src/
INCS := inc/
TARGET_TYPE := EXE
TARGET := exe/foo.exe
LIBS := -lpthread
OBJ_DIR := objs
SRC_EXTS := cpp c
include common_Makefile
数组完成,如果必须完全使用2D数组。
除非你被特别告知要使它成为一个数组,否则有很多方法可以将这种形状打印到控制台而不是使用数组。如果你真的希望将它存储在一个数组中,那么char
数组就是合适的类型。
静态填充值虽然是一个可怕的浪费时间,并使代码混乱。如果你考虑如何仅通过使用循环逻辑生成这样的形状,你会发现同样可以应用于算法初始化数组。
最后,你的代码,即使是固定的,也不会生成三角形,而是生成菱形。
答案 2 :(得分:0)
替换
行int [][] arrayNumbers = new int[5][5];
与
String [][] arrayNumbers = new String[5][5];