嗨我正在编写这个数组,以便读取30个整数并读出最小值和最大值。我已经解决了最大值,但最小值不起作用,所有帮助都表示赞赏,如上所述,我已经解决了最大值,但最小值无法正常工作
import java.io.*;
import java.util.*;
public class Uppgift1
{
public static void main(String args[])throws IOException
{
BufferedReader stdin = new BufferedReader
(new InputStreamReader (System.in));
int antal = 0;
int summa = 0;
double medel = 0;
int min;
int max = 0;
System.out.print("Hur manga tal vill du mata in(max 30)? ");
antal = Integer.parseInt(stdin.readLine());
int [] array = new int[antal];
for(int i = 0; i<antal; i++){
array[i] = Integer.parseInt(stdin.readLine());
summa = summa +array[i];
medel = summa / antal;
}
System.out.println("summan av talen är "+summa);
System.out.println("medel av alla tal är "+medel);
for (int i = 0; i < antal; i++)
{
while(array[i]>max)
{
max=array[i];
}
}
System.out.println("max numret är " + max);
for (int i = 0; i < antal; i++)
{
while(array[i]<min)
{
min=array[i];
}
}
System.out.println("min numret är " + min);
}}
答案 0 :(得分:5)
min
从零开始,因此它比用户输入的任何正数低。
通常,您在进入循环之前从最小高点和最低点开始。这会牺牲可用范围内的两个数字,通常可以。或者,您可以将min
和max
都设置为序列的初始元素。
另一个问题是你使用while
代替if
:它不会对结果造成伤害,但它确实会损害可读性。
最后,您可以在同一循环中搜索min
和max
。
答案 1 :(得分:1)
这样做可以计算最小值和最大值 假设您有一个名为数字的数组。 初始化变量min,max如下所示
int min = numbers[0];
int max = numbers[0];
for(int i=1; i< numbers.length(); i++) {
if(min>numbers[i]) {
min = numbers[i];
}
if(max<numbers[i]) {
max = numbers[i];
}
}
System.out.println("Max Is : " + max);
System.out.println("Min Is : " + min);
答案 2 :(得分:0)
使用尽可能大的整数(min
)初始化Integer.MAX_VALUE
变量。将找到任何小于此数字的数字。
使用尽可能小的整数(max
)初始化Integer.MIN_VALUE
变量。将找到任何大于此数字的数字。
答案 3 :(得分:0)
max= 0;
min=0;
for (int i = 0; i < antal; i++) {
max = Math.max(max, array[i]);
min = Math.min (min, array[i]);
}