嗨,我写这个数组是为了读入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);
}}发布于 2012-08-08 00:12:14
min从零开始,因此它比较的值小于用户输入的任何正数。
通常,在进入循环之前,您从最低最高值开始。这会牺牲可用范围中的两个数字,这通常是可以的。或者,您可以将min和max都设置为序列的初始元素。
另一个问题是您使用while而不是if:这不会损害结果,但会大大损害可读性。
最后,您可以在同一个循环中搜索min和max。
发布于 2012-08-08 00:17:46
这样做是为了计算最小和最大值,假设你有一个名为numbers的数组。初始化变量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);发布于 2012-08-08 00:12:56
使用可能的最大整数(Integer.MAX_VALUE)初始化min变量。任何小于这个值的数字都会被找到。
使用可能的最小整数(Integer.MIN_VALUE)初始化max变量。任何大于这个数的数都会被找到。
https://stackoverflow.com/questions/11849953
复制相似问题