所以我试图从文本文件导入数据。这是该文件的内容:Java如何计算阵列中有多少个元素有一个范围?
的第一个数字是应该放置测试分数的数量。第二行数字包含个人测试分数。
我使用BufferedReader
和StringTokenizer
来读取数据并将其放入int[] anArray;
。变量int number1 = Integer.parseInt(s1);
应该保存第一行文本(所有测试分数的总数)。然后,我初始化anArray = new int[number1];
以将所有测试分数存储在其中。我成功地完成了这项任务。而由于所有的数组在[0]
开始,我初始化变量int readnumber = number1 -1;
这是代码初始化int[] anArray;
块:
int x = readnumber;
for (x = readnumber; x >= 0; x--)
{
s2 = st.nextToken();
anArray[x] = Integer.parseInt(s2);
countarray[x] = Integer.parseInt(s2);
//System.out.println (" Token is: " + s2);
//System.out.println (anArray[x]);
}
我应该创建一个数组,将经过int[] anArray;
和计数的测试成绩。我应该将这些测试分数保存在一个范围内。 0 -9,10 - 29,30 - 39,40 - 49,50 - 59,60 - 69,70 - 79,80 - 89,90 - 100.
这是一种统计量。我应该分开int[] anArray;
的个别值,并将它们置于上述范围内。所以我创建了数组countarray[x] = Integer.parseInt(s2);
。我做了一个代码,根据输入找到最小和最大范围值。每当循环经过int[] anArray;
并发现数组的值适合在该范围的最小值和最大值之间时,则应该将1
添加到数组int[] countarray;
并移至下一个值。这就是它将如何找到多少个int[] anArray;
值适合特定范围参数。围绕该循环的其他代码只是确定来自输入的范围参数,因此它们是灵活的,而不是“硬连线”到代码中。
我不能让这个程序工作。我认为这只是int[] countarray;
的语法错误。你们可以看看吗?所有其他的循环和计算必须保持。
Here is my main code:
import java.io.*;
import java.util.*;
public class GradesHistogram
{
public static void main(String[] args)throws java.io.IOException
{
String s1;
String s2;
BufferedReader br = new BufferedReader (new FileReader ("grades.in.txt"));
s1 = br.readLine();
System.out.print(s1);
System.out.println("\n");
int number1 = Integer.parseInt(s1);
//System.out.println("Number1 is " +number1);
int[] anArray;
anArray = new int[number1];
anArray[0] = 1;
int[] countarray;
countarray = new int[number1];
countarray[0] = 1;
System.out.println(s1);
s2 = br.readLine();
System.out.println(s2);
StringTokenizer st = new StringTokenizer (s2);
int readnumber = number1 -1;
int x = readnumber;
for (x = readnumber; x >= 0; x--)
{
s2 = st.nextToken();
anArray[x] = Integer.parseInt(s2);
countarray[x] = Integer.parseInt(s2);
//System.out.println (" Token is: " + s2);
//System.out.println (anArray[x]);
}
int histogrammin = 0;
int histogrammax = 0;
x = readnumber;
for (int histogramrows = 0; histogramrows < 10; histogramrows++)
{
histogrammin = histogramrows * 10;
if (histogrammin == 90)
{
histogrammax = histogrammin + 10;
}
else
{
histogrammax = histogrammin + 9;
for (x = 0; x < 14; x++)
{
if (histogrammin <= anArray[x] && anArray[x] <= histogrammax)
{
countarray[x]++;
System.out.println("countarray = "+countarray[x]);
}
}
}
}
}
}
你可以把它变成一个产生这个错误的最小例子吗? –
我想你需要详细阐述一下“我不能让这个程序工作。”什么不工作?它会崩溃吗?计算错了吗?你需要提供一些你实际遇到的问题的更多细节。 –
计算错误。 – Galaxy