Java 查找有多少个连续数字

Java 查找有多少个连续数字,java,Java,我需要找出我的随机数生成器中出现了多少个连续数,除了连续数部分,我的程序还在运行。这是我得到的。我试过很多东西,但由于某些原因我就是想不出来,请帮助我!有1000个数字和500个随机数,然后我找到最小值和最大值,然后是平均值。现在我需要找出有多少连续的数字,例如9,10,11或55,56,57。。。 我也得到了这个错误。。。 --线程“main”java.util.NoSuchElementException中出现异常 int num, largest, smallest, sum =

我需要找出我的随机数生成器中出现了多少个连续数,除了连续数部分,我的程序还在运行。这是我得到的。我试过很多东西,但由于某些原因我就是想不出来,请帮助我!有1000个数字和500个随机数,然后我找到最小值和最大值,然后是平均值。现在我需要找出有多少连续的数字,例如9,10,11或55,56,57。。。 我也得到了这个错误。。。 --线程“main”java.util.NoSuchElementException中出现异常

    int num, largest, smallest, sum = 0, count = 0;
    int programnumber = 6;
    header (prw, programnumber);
    double average = 0;

    Random gen = new Random();
    FileWriter fw = new FileWriter("randomdata.txt");
    for (int i1 = 0; i1 < 500; i1++){
        num = gen.nextInt(1000);
        fw.write(num + "\n");
        count++;

    }
    fw.close();

    File numfile = new File("randomdata.txt");
    Scanner infile = new Scanner(numfile);
    largest = infile.nextInt();
    smallest = infile.nextInt();
    largest = 0;
    smallest = 999;
    while (infile.hasNext()){
        num = infile.nextInt();
        System.out.println(num);
        if (num > largest){
            largest = num;
        }
        if (num < smallest){
            smallest = num;
        }
        sum = sum + num;
        count++;
        }
    average = (double) sum / count;
    System.out.println("The largest is: " + largest);
    prw.println("The largest is: " + largest);
    System.out.println("The smallest is: " + smallest);
    prw.println("The smallest is: " + smallest);
    System.out.println("The average is: " + average);
    prw.println("The average is: " + average);

            // here is the part where I am stuck
    int prev, consec=0;
    prev= infile.nextInt();
    num= infile.nextInt();
    while (num >= 0) { 
        if (num >= prev){  
            consec++; 
            prev = num; 
            num = infile.nextInt();
        }

    }
    System.out.println(consec);








    prw.close();
}
int num,最大,最小,和=0,计数=0;
int程序编号=6;
标题(prw,程序编号);
双平均=0;
Random gen=新的Random();
FileWriter fw=新的FileWriter(“randomdata.txt”);
对于(int i1=0;i1<500;i1++){
num=gen.nextInt(1000);
fw.write(num+“\n”);
计数++;
}
fw.close();
File numfile=新文件(“randomdata.txt”);
扫描仪填充=新扫描仪(numfile);
最大=infle.nextInt();
最小=infle.nextInt();
最大值=0;
最小=999;
while(infle.hasNext()){
num=infle.nextInt();
系统输出打印项数(num);
如果(数值>最大值){
最大=num;
}
if(num<最小值){
最小=num;
}
sum=sum+num;
计数++;
}
平均值=(双)总和/计数;
System.out.println(“最大的是:“+最大的”);
prw.println(“最大值为:“+最大值”);
System.out.println(“最小的是:“+最小的”);
prw.println(“最小值为:“+最小值”);
System.out.println(“平均值为:“+平均值”);
prw.println(“平均值为:“+平均值”);
//这就是我被卡住的地方
int-prev,conce=0;
prev=infle.nextInt();
num=infle.nextInt();
而(num>=0){
如果(num>=prev){
conce++;
prev=num;
num=infle.nextInt();
}
}
系统输出打印LN(连续);
prw.close();
}

num
不能小于零吗? 错误在您的if中:

(num>=prev)

并不意味着它们是连续的。只有第一个大于或等于。 它应该是
(num+1==prev)

此外,您正在读取所有文件以查找最大值、最小值和平均值,在验证连续数字时没有任何内容可读取

编辑

本部分代码:

largest = infile.nextInt();
smallest = infile.nextInt();
largest = 0;
smallest = 999;

正在丢弃前两个数字。

如果您给我们提供示例输入和预期输出,将更容易帮助您。在我看来,您在开始查找“连续”数字(无论这意味着什么)之前将输入文件一直运行到最后。当
num>=prev
第一次为false时,底部循环将永远循环,因为在那之后什么都不会改变。(你需要清楚地定义“连续的”。我怀疑你是否知道这个词的意思。)连续的定义是,它以升序排列,比如,1,2,3…当你计算其他事物时,为什么不计算出有多少个连续的数字?或者您可以再次打开该文件。因此,将if语句放入while?解决方案取决于您。我们在这里指出了错误。但是没有人会为你编码。注意不要读取新的int值并丢弃它们。如果答案合适,你应该接受它,并标记对问题有用的注释。