Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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查找文件中的最大和最小数字_Java_File - Fatal编程技术网

使用Java查找文件中的最大和最小数字

使用Java查找文件中的最大和最小数字,java,file,Java,File,作为这个问题的一部分,我需要找到: 数字的数量(计数) 数字的总和(总和) 数字的平均值(平均值) 哪些数字是偶数(偶数) 哪些数字是奇数(赔率) 我需要找到的最后两件事是最大值和最小值 我的老师已经写了基本代码: Scanner infile = new Scanner ( new FileReader(args[0]) ); int count=0,sum=0, largest=Integer.MIN_VALUE,smallest=Integer.MAX_VALUE, evens=0,

作为这个问题的一部分,我需要找到:

  • 数字的数量(计数)
  • 数字的总和(总和)
  • 数字的平均值(平均值)
  • 哪些数字是偶数(偶数)
  • 哪些数字是奇数(赔率)
我需要找到的最后两件事是最大值和最小值

我的老师已经写了基本代码:

Scanner infile = new Scanner ( new FileReader(args[0]) );
int count=0,sum=0, largest=Integer.MIN_VALUE,smallest=Integer.MAX_VALUE, evens=0, odds=0;
double average=0.0;

while (infile.hasNext())
我已经为while循环中列出的变量编写了代码,但是我不知道如何处理最大值和最小值

我已尝试在while循环中执行此操作:

if (count > largest)
   largest = count;

if (count < smallest)
   smallest = count;
while (infile.hasNext())
    {
        count += 1;
        sum += infile.nextInt();
        average = sum/count;
        if (sum%2 != 0)
            odds++;
        else
            evens++;
    }
我该怎么办

编辑/加载项: 我想你们应该看看我在while循环中所做的其他事情:

if (count > largest)
   largest = count;

if (count < smallest)
   smallest = count;
while (infile.hasNext())
    {
        count += 1;
        sum += infile.nextInt();
        average = sum/count;
        if (sum%2 != 0)
            odds++;
        else
            evens++;
    }

此代码未经测试,但它应该按照您的要求执行

 int count = 0, min = Integer.MAX_VALUE, max = Integer.MIN_VALUE,
       sum = 0, even = 0, odd = 0;
 while (scanner.hasNextInt()) {
    int number = scanner.nextInt();
    if (number < min)
        min = number;
    if (number > max)
        max = number;
    if (number % 2 == 0)
        even++;
    else
        odd++;
    sum+= number;
    count++;
 }
 double average = sum * 1.0 / count;
int count=0,min=Integer.MAX\u值,MAX=Integer.min\u值,
和=0,偶数=0,奇数=0;
while(scanner.hasNextInt()){
int number=scanner.nextInt();
如果(数量<分钟)
最小=数量;
如果(数量>最大值)
最大值=数量;
如果(数字%2==0)
偶数++;
其他的
奇数++;
总和+=数字;
计数++;
}
双平均=总和*1.0/计数;

此代码未经测试,但应按您的要求执行

 int count = 0, min = Integer.MAX_VALUE, max = Integer.MIN_VALUE,
       sum = 0, even = 0, odd = 0;
 while (scanner.hasNextInt()) {
    int number = scanner.nextInt();
    if (number < min)
        min = number;
    if (number > max)
        max = number;
    if (number % 2 == 0)
        even++;
    else
        odd++;
    sum+= number;
    count++;
 }
 double average = sum * 1.0 / count;
int count=0,min=Integer.MAX\u值,MAX=Integer.min\u值,
和=0,偶数=0,奇数=0;
while(scanner.hasNextInt()){
int number=scanner.nextInt();
如果(数量<分钟)
最小=数量;
如果(数量>最大值)
最大值=数量;
如果(数字%2==0)
偶数++;
其他的
奇数++;
总和+=数字;
计数++;
}
双平均=总和*1.0/计数;

此代码未经测试,但应按您的要求执行

 int count = 0, min = Integer.MAX_VALUE, max = Integer.MIN_VALUE,
       sum = 0, even = 0, odd = 0;
 while (scanner.hasNextInt()) {
    int number = scanner.nextInt();
    if (number < min)
        min = number;
    if (number > max)
        max = number;
    if (number % 2 == 0)
        even++;
    else
        odd++;
    sum+= number;
    count++;
 }
 double average = sum * 1.0 / count;
int count=0,min=Integer.MAX\u值,MAX=Integer.min\u值,
和=0,偶数=0,奇数=0;
while(scanner.hasNextInt()){
int number=scanner.nextInt();
如果(数量<分钟)
最小=数量;
如果(数量>最大值)
最大值=数量;
如果(数字%2==0)
偶数++;
其他的
奇数++;
总和+=数字;
计数++;
}
双平均=总和*1.0/计数;

此代码未经测试,但应按您的要求执行

 int count = 0, min = Integer.MAX_VALUE, max = Integer.MIN_VALUE,
       sum = 0, even = 0, odd = 0;
 while (scanner.hasNextInt()) {
    int number = scanner.nextInt();
    if (number < min)
        min = number;
    if (number > max)
        max = number;
    if (number % 2 == 0)
        even++;
    else
        odd++;
    sum+= number;
    count++;
 }
 double average = sum * 1.0 / count;
int count=0,min=Integer.MAX\u值,MAX=Integer.min\u值,
和=0,偶数=0,奇数=0;
while(scanner.hasNextInt()){
int number=scanner.nextInt();
如果(数量<分钟)
最小=数量;
如果(数量>最大值)
最大值=数量;
如果(数字%2==0)
偶数++;
其他的
奇数++;
总和+=数字;
计数++;
}
双平均=总和*1.0/计数;

我相信你需要做一些事情

int count = 0, sum = 0, largest = Integer.MIN_VALUE, smallest = Integer.MAX_VALUE, 
    evens = 0, odds = 0;
double average = 0.0;

while (infile.hasNext()) {
  if (infile.hasNextInt()) {
    int value = infile.nextInt();
    count++;
    sum += value;
    if (value > largest) {
      largest = value;
    }
    if (value < smallest) {
      smallest = value;
    }
    if (value % 2 == 0) {
      evens++;
    } else {
      odds++;
    }
  } else {
    infile.next();
  }
}
average = ((double) sum) / count;
System.out.printf("smallest = %d, largest = %d, average = %f, "
        + "sum = %d, count = %d, evens = %d, odds = %d%n",
        smallest, largest, average, sum, count,
        evens, odds);
我收到了

smallest = 3, largest = 57, average = 26.833333, sum = 161, count = 6, evens = 3, 
odds = 3

我相信你需要做一些事情,比如

int count = 0, sum = 0, largest = Integer.MIN_VALUE, smallest = Integer.MAX_VALUE, 
    evens = 0, odds = 0;
double average = 0.0;

while (infile.hasNext()) {
  if (infile.hasNextInt()) {
    int value = infile.nextInt();
    count++;
    sum += value;
    if (value > largest) {
      largest = value;
    }
    if (value < smallest) {
      smallest = value;
    }
    if (value % 2 == 0) {
      evens++;
    } else {
      odds++;
    }
  } else {
    infile.next();
  }
}
average = ((double) sum) / count;
System.out.printf("smallest = %d, largest = %d, average = %f, "
        + "sum = %d, count = %d, evens = %d, odds = %d%n",
        smallest, largest, average, sum, count,
        evens, odds);
我收到了

smallest = 3, largest = 57, average = 26.833333, sum = 161, count = 6, evens = 3, 
odds = 3

我相信你需要做一些事情,比如

int count = 0, sum = 0, largest = Integer.MIN_VALUE, smallest = Integer.MAX_VALUE, 
    evens = 0, odds = 0;
double average = 0.0;

while (infile.hasNext()) {
  if (infile.hasNextInt()) {
    int value = infile.nextInt();
    count++;
    sum += value;
    if (value > largest) {
      largest = value;
    }
    if (value < smallest) {
      smallest = value;
    }
    if (value % 2 == 0) {
      evens++;
    } else {
      odds++;
    }
  } else {
    infile.next();
  }
}
average = ((double) sum) / count;
System.out.printf("smallest = %d, largest = %d, average = %f, "
        + "sum = %d, count = %d, evens = %d, odds = %d%n",
        smallest, largest, average, sum, count,
        evens, odds);
我收到了

smallest = 3, largest = 57, average = 26.833333, sum = 161, count = 6, evens = 3, 
odds = 3

我相信你需要做一些事情,比如

int count = 0, sum = 0, largest = Integer.MIN_VALUE, smallest = Integer.MAX_VALUE, 
    evens = 0, odds = 0;
double average = 0.0;

while (infile.hasNext()) {
  if (infile.hasNextInt()) {
    int value = infile.nextInt();
    count++;
    sum += value;
    if (value > largest) {
      largest = value;
    }
    if (value < smallest) {
      smallest = value;
    }
    if (value % 2 == 0) {
      evens++;
    } else {
      odds++;
    }
  } else {
    infile.next();
  }
}
average = ((double) sum) / count;
System.out.printf("smallest = %d, largest = %d, average = %f, "
        + "sum = %d, count = %d, evens = %d, odds = %d%n",
        smallest, largest, average, sum, count,
        evens, odds);
我收到了

smallest = 3, largest = 57, average = 26.833333, sum = 161, count = 6, evens = 3, 
odds = 3


你为什么要比较计数?你需要从Infle那里得到号码。例如,
int currNum=infle.nextInt()
如果(currNum>最大)
可能重复@Pith当我问这个问题时,我没有得到任何帮助。请不要破坏这一点,因为我实际上得到了建设性的帮助。这不是破坏,而是让糟糕的内容泄气。@JasonMArcher不,你是在让新程序员泄气。对于那些只想成为更好的程序员的人来说,这是毫无帮助的,没有灵感的,也是粗鲁的。你为什么要比较一个数字?你需要从Infle那里得到号码。例如,
int currNum=infle.nextInt()
如果(currNum>最大)
可能重复@Pith当我问这个问题时,我没有得到任何帮助。请不要破坏这一点,因为我实际上得到了建设性的帮助。这不是破坏,而是让糟糕的内容泄气。@JasonMArcher不,你是在让新程序员泄气。对于那些只想成为更好的程序员的人来说,这是毫无帮助的,没有灵感的,也是粗鲁的。你为什么要比较一个数字?你需要从Infle那里得到号码。例如,
int currNum=infle.nextInt()
如果(currNum>最大)
可能重复@Pith当我问这个问题时,我没有得到任何帮助。请不要破坏这一点,因为我实际上得到了建设性的帮助。这不是破坏,而是让糟糕的内容泄气。@JasonMArcher不,你是在让新程序员泄气。对于那些只想成为更好的程序员的人来说,这是毫无帮助的,没有灵感的,也是粗鲁的。你为什么要比较一个数字?你需要从Infle那里得到号码。例如,
int currNum=infle.nextInt()
如果(currNum>最大)
可能重复@Pith当我问这个问题时,我没有得到任何帮助。请不要破坏这一点,因为我实际上得到了建设性的帮助。这不是破坏,而是让糟糕的内容泄气。@JasonMArcher不,你是在让新程序员泄气。对于那些只想成为更好的程序员的人来说,这是毫无帮助的,没有启发性的,也是粗鲁的。你们都是对的,只要他先回答!非常感谢你们的帮助非常感谢你们!感谢你们并没有像stackoverflow和经验不足的程序员一样破坏它。你们都是对的,他先回答了!非常感谢你们的帮助非常感谢你们!感谢你们并没有像stackoverflow和经验不足的程序员一样破坏它。你们都是对的,他先回答了!非常感谢你们的帮助非常感谢你们!感谢你们并没有像stackoverflow和经验不足的程序员一样破坏它。你们都是对的,他先回答了!非常感谢你们的帮助非常感谢你们!感谢您没有像stackoverflow那样让它出轨,这是众所周知的与没有经验的程序员有关的。非常感谢您!感谢您没有像stackoverflow那样让它出轨,这是众所周知的与缺乏经验的p