Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java数组的问题 import java.io.*; 公共类数组{ 公共静态void main(字符串args[])引发IOException{ 缓冲区读取 Input=新的BufferedReader(新的InputStreamReader(System.in)); System.out.println(“有多少条标准?”);//询问有多少条记录 int n=Integer.parseInt(inpt.readLine());//存储在n中 int[]arrayCrit=new int[n];//创建大小为n的数组 String[]crits=新字符串[n]; //**正如您在“编辑”中提到的,您希望在打印前获取所有输入** 对于(int i=0;in1时,您将出现此错误。更改以下代码:_Java_Arrays - Fatal编程技术网

使用Java数组的问题 import java.io.*; 公共类数组{ 公共静态void main(字符串args[])引发IOException{ 缓冲区读取 Input=新的BufferedReader(新的InputStreamReader(System.in)); System.out.println(“有多少条标准?”);//询问有多少条记录 int n=Integer.parseInt(inpt.readLine());//存储在n中 int[]arrayCrit=new int[n];//创建大小为n的数组 String[]crits=新字符串[n]; //**正如您在“编辑”中提到的,您希望在打印前获取所有输入** 对于(int i=0;in1时,您将出现此错误。更改以下代码:

使用Java数组的问题 import java.io.*; 公共类数组{ 公共静态void main(字符串args[])引发IOException{ 缓冲区读取 Input=新的BufferedReader(新的InputStreamReader(System.in)); System.out.println(“有多少条标准?”);//询问有多少条记录 int n=Integer.parseInt(inpt.readLine());//存储在n中 int[]arrayCrit=new int[n];//创建大小为n的数组 String[]crits=新字符串[n]; //**正如您在“编辑”中提到的,您希望在打印前获取所有输入** 对于(int i=0;in1时,您将出现此错误。更改以下代码:,java,arrays,Java,Arrays,您在arrayCritr上从0迭代到n,但您使用n1初始化arrayCritr,两者都来自用户输入 如果n比n1大,您将得到该异常 在您的例子中,n是4,n1应该是2,因此您将得到一个异常 将for循环更改为使用n1 import java.io.*; public class Array { public static void main(String args[]) throws IOException { BufferedReader inpt = new Buffe

您在
arrayCritr
上从0迭代到
n
,但您使用
n1
初始化
arrayCritr
,两者都来自用户输入

如果
n
n1
大,您将得到该异常

在您的例子中,
n
是4,
n1
应该是2,因此您将得到一个异常


将for循环更改为使用
n1

 import java.io.*;

public class Array {
public static void main(String args[]) throws IOException {
    BufferedReader
    inpt = new BufferedReader(new InputStreamReader(System. in ));

    System.out.println("How many criteria?");//ask for how many records
    int n = Integer.parseInt(inpt.readLine());// store in n

    int[] arrayCrit = new int[n];//create array with size n
    String[] crits = new String[n];

        //**as you mentioned in edit you want to take all the input before printing**      
    for (int i = 0; i < n; i++) 
    {
      System.out.print("Criteria: ");
      crits[i] = inpt.readLine();

      System.out.print("Percentage: ");
      arrayCrit[i] = Integer.parseInt(inpt.readLine());      
    }

    System.out.println("How many students' record?");
    int n1 = Integer.parseInt(inpt.readLine());

    int [] arrayCritr = new int [n1];
    String [] arraySname = new String [n1];

    for(int i=0; i<n1; i++){
    String name;
    System.out.print("Student Name: ");
    arraySname[i] = inpt.readLine();
    for(int j=0; j<n; j++){ 
    System.out.print("Grade in "+ crits[i] + ": ");
    arrayCritr[j] = Integer.parseInt(inpt.readLine());
    crits[i]=crits[i+1];
  }
  crits[i]=crits[i-i];
}
}
}

接近终点的那一行:

int [] arrayCritr = new int [n];

for(int j=0;j您的arrayCritr大小为n1,但您使用的索引是从0到n。当您的n>n1时,您将出现此错误。更改以下代码:

arrayCritr[j]=Integer.parseInt(inpt.readLine())

arrayCritr[i]=Integer.parseInt(inpt.readLine())


同样,在嵌套循环中使用arrayCritr也没有意义,因此最好将其移到更高的位置。

您在
Crits[i]
=Crits[i+1]行中弄乱了
Crits
数组`

很快,所有条件都将被最后一个条件覆盖。您已经开始在第一位输出中看到:

for(int j=0; j<n1; j++){ 
但实际上,您需要清楚地了解每个数组的含义,每个循环计数器的含义。使用伪代码可以帮助您做到这一点:

Student Name: Wayne
Grade in Quiz: 90
Grade in Att: 80
Grade in Att: 70
当您查看代码时,您会发现您的结构没有很好地遵循这一点。不要更改criteria数组-只更改数组中您指向的位置(即索引)


在这种情况下,使用更有意义的变量名是很有帮助的:
numStudents
numCriteria
,以及
studentIndex
criteriaIndex
,而不是
n,n1,i,j
。一旦这样做,事情就会得到解决,问题就会变得很明显。

你想在这一行中做什么
>crits[i]=crits[i-i];
?这毫无意义。是否有打字错误?您不能从“故事的中间”开始打开一个新主题“…每个学生都有多分还是单分?”Floris我正在尝试重置该值,以便第二个学生以“测验中的分数”开始而不是继续数组。我尝试了这样做,但它仍然没有移动..我为什么选择(int j=0;j
for(int j=0; j<n1; j++){ 
Student Name: Wayne
Grade in Quiz: 90
Grade in Att: 80
Grade in Att: 70
get number of criteria

get each criteria as input

get number of students

for each student in students:
  output student name
  for each c in criteria:
    output criteria for this student