我对此代码有一些问题:
import java.util.*;
public class Function{
public static void main(String[] Problem) {
int i, continut, minim = 0;
Scanner in = new Scanner(System.in);
System.out.println("Type the maximum number of element:");
continut = in.nextInt();
int array[] = new int[continut];
for (i = 0; i < continut; i++) {
array[i] = in.nextInt();
}
for (i = 0; i < continut; i++) {
if (array[i] < minim) {
minim = array[i];
}
}
System.out.print(minim);
}
}
我不明白为什么在我运行这个程序后输出总是给我minim = 0。
答案 0 :(得分:3)
您当前的minim
设置为0
并且您可能提供更大的数字,这意味着最小数字永远不会被任何较小的数字替换。
要避免此问题,您可以使用
初始化minim
minim = Integer.MAX_VALUE
。答案 1 :(得分:1)
minim=Integer.MAX_VALUE
而不是0应该做的工作。这样,您就可以确定第一个值睾丸低于minim
。
答案 2 :(得分:0)
您可以使用数组的第一个元素(如
)初始化它,而不是0minim=array[0];
现在您可以轻松地从该阵列中检查最小值!
答案 3 :(得分:0)
将第一个输入分配到minim
,并从第二个输入到minim
进行比较并更新:
int minim = array[0];
for (i = 1; i < array.length; i++) {
if (array[i] < minim) {
minim = array[i];
}
}
但是,这要求至少有一个元素。 事实上,如果没有元素,找到最小值是没有意义的。 所以添加输入验证很好:
while (true) {
System.out.println("Type the maximum number of element:");
continut = in.nextInt();
if (contitut > 0) {
break;
}
System.out.println("Invalid input: please enter an integer > 0");
}
答案 4 :(得分:-1)
您必须将数组的第一个值存储为minim
。然后,如果其他值小于minim
,则必须检查其他值,然后将该值替换为该值。
您可以通过添加
来实现minim = array[0];
代码前