java - 使用for循环在数组中查找最大值和最小值?
问题描述
试图在 java 中找到随机生成的数组的最小值/最大值。我的代码正在寻找最大值,但是我不确定为什么当我尝试运行它时,最小值每次都会出现 0.0。
public static void main(String[] args) {
double array1[] = new double [10];
int n = array1.length;
double max = array1[0];
double min = array1[1];
System.out.println("Array: ");
for (int i=0; i<n; i++) {
array1[i] = Math.floor((Math.random() * 100) + 1);
System.out.print(array1[i]+ " | " );
if (array1[i] > max) {
max = array1[i];
}
if (min > array1[i]) {
min = array1[i];
}
}
}
解决方案
据我所知,最小值为 0.0 的原因是因为它是空数组中元素的默认值,因此当您尝试在整个随机生成的数组中比较哪个最小值仅为 1 时,内部的值min 变量永远不会被更新。尽管数组中的元素尚未初始化,但您已经将 min 指定为数组的第二个元素。尝试在比较循环之前处理的不同循环中初始化数组,或者将 min 变量分配为随机生成器的最大值,然后它可能会顺利运行。
for(int i= 0;i<n;i++)
array1[i] = Math.floor((Math.random() * 100) + 1);
max = array[0];
min = array[0];
for(int i = 1;i<n;i++)
{
System.out.print(array1[i]+ " | " );
//continue ...
}
或这个
min = 100;
max = 1;
for(int i = 0; i<n;i++)
{
//continue ...
}
推荐阅读
- pandas - Python Pandas 中的 COUNTIFS
- javascript - Highchart 仅在本地主机上正确显示
- python - 编辑对象列表中的一个对象会更改所有对象的属性
- java - 我怎样才能为 JRadioButton 制作这个 ItemListener
- mysql - 我们可以对同一个表中的多个列使用 FIND_IN_SET() 函数吗
- r - 尝试分解时间序列时出错:非数字参数
- angular - ag-grid CellRenderer 组件变更
- python - 如何在类中使用不同的多用户输入在字典中添加数据?
- javascript - 无法为 div 元素设置高度
- android-studio - Android Studio 通过活动结果加载位图