这里我需要编写一个方法printArray,它显示数组的内容 num 并显示每个数组的内容 由空格分隔的数字。我必须在每20个元素之后开始一个新的行。
我写了这段代码,但每当我尝试执行它时,它会显示没有新行的数组
public class project2 {
public static void main(String[] args) {
int num []= new int [100];
for (int i=0;i<num.length;i++){
num[i]=-1;
num[7]=7;
}
printArray(num);
System.out.println(num);
}
public static void printArray (int array1[]){
int count =20;
for (int x=0;x<array1.length;x++){
System.out.print(array1[x]+" ");
if (array1[x]==count){
System.out.println(" ");
count=array1[x]+count;
}
}
}
}
答案 0 :(得分:1)
import java.util.Arrays;
import java.util.Random;
public class project2 {
public static void main(String[] args) {
int num[] = new int[100];
Random random = new Random();
for (int i = 0; i < num.length; i++) {
num[i] = random.nextInt(100);
}
printArray(num);
System.out.println('\n' + Arrays.toString(num));
}
public static void printArray(int array1[]) {
int count = 20;
for (int i = 0; i < array1.length; i++) {
System.out.printf("%2d ", array1[i]);
if ((i + 1) % count == 0) {
System.out.println("");
}
}
}
}
答案 1 :(得分:0)
问题在于
if (array1[x]==count)
您正在将count
与数组中的值进行比较。而是将其与所需的计数进行比较,即20或使用其他答案/评论中建议的模运算符。
int count = 1;
for (int x=0;x<array1.length;x++){
System.out.print(array1[x]+" ");
if (count == 20){ // Check if its 20th element
System.out.println(" ");
count=1; // reset count
}
count++;
}
答案 2 :(得分:0)
您应该使用更适合您使用的模数(或余数)运算符(%
):
for (int x=0;x<array1.length;x++){
System.out.print(array1[x]+" ");
if (x>0 && (x%count)==0){
System.out.println(" ");
}
}
这样,每count
个字符都会有一个新行,第一行不会有(这就是x>0
检查的原因)。
另外,在原帖中,这句话坦白说完全不好:
count=array1[x]+count;
它会做什么?为什么要将存储在数组中的值添加到固定计数器?考虑到这一点,我建议你应该稍微坐下来,并尝试考虑事情在后台如何运作......没有魔力!
答案 3 :(得分:0)
仔细看看你的if语句:
if (array1[x]==count)
根据您的数组值,这将永远不会返回true
答案 4 :(得分:0)
我必须在每20个元素后开始一个新行。
更改为以下代码:
if (x%20 == 0)
{
System.out.println();
}
取代
if (array1[x]==count)
{
System.out.println(" ");
count=array1[x]+count;
}