如果我不清楚,我道歉。我是编程新手。所以我要说我有一个char[10][10]
。我想间隔分配两个+字符,例如i[0][0]
到i[5][7]
有Y
,其余有N
。如果可能,我该怎么做?我一直试图弄清楚它超过6个小时。
答案 0 :(得分:0)
这可以通过循环来完成。
for(int i = 0; i < 5; i++){
for(int j = 0; j < 7; j++){
i[i][j] = 'N';
}
for(int j = 7; j < 10; j++){
i[i][j] = 'Y';
}
}
for(int i = 5; i < 10; i++){
for(int j = 0; j < 10; j++){
i[i][j] = 'Y';
}
}
答案 1 :(得分:0)
一种可能的解决方案是让一个'for'块通过行,另一个'for'块通过列。它可能像
char[] arr= {'Y','N'};
int counter = 0; // <- these are optional depending on what you choose below
for(int j=0;j<10;j++){
for(int k=0;k<10;k++){
// i[j][k]= here you should assign the value
counter++;
}
}
分配值的方式取决于您想要做什么。如果你想让它随机生成你可以做i[j][k]= arr[(int)(Math.random()*2)]
之类的事情,或者如果你想让它在Y和N之间交替,你可以有一个计数器变量并指定i[j][k]= arr[counter%2]
。如果你想将前半部分指定为'Y'而将另一半指定为'N'i[j][k]= (counter<=50)?'Y':'N';
。你提出的具体案例是i[j][k]= (j<=5 && k<=7)?'Y':'N';
这在很大程度上取决于你想做什么
答案 2 :(得分:0)
char[][] theArray = new char[10][10]
upToX = 5; // limit for rows
upToY = 7; // limit for columns
for(int i = 0; i < 10; i++ ){
for(int j = 0; j< 10; j++ ){
if((i+1)*(j+1) <= (upToX+1)*(upToY+1)){
theArray[i][j] = 'Y';
}
else{
theArray[i][j] = 'N';
}
}
}
答案 3 :(得分:-2)
尝试使用for-loops和if-else。由于您要查找是/否类型值,我在我的示例中使用了boolean
类型
boolean[][] arr = new boolean[10][10];
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr[i].length; j++) {
if(i < 6 && j < 8)
arr[i][j] = true;
else
arr[i][j] = false;
}
}