import java.util.*;
import javax.swing.*;
public class Practice {
public static void main(String[] args){
int[] numbers = {1, 2, 3, 14, 15, 16, 17};
getSmall(numbers);
}
public static void getSmall(int[] ar){
int small=0;
for(int i=0; i<ar.length; i++){
if(ar[i]<small)
small = ar[i];
}
System.out.println(small);
}
}
该程序是在数组中找到最小的数字,没有编译器错误,但它没有显示正确的结果。 提前谢谢!
答案 0 :(得分:3)
public static void getSmall(int[] ar){
int small=ar[0];
for(int i=1; i<ar.length; i++){
if(ar[i]<small)
small = ar[i];
}
System.out.println(small);
}
答案 1 :(得分:1)
最初将small
设置为0是一个坏主意,因为您希望您的数组包含的元素少于答案的元素。
常见的习惯用法是将small
初始化为ar[0]
(当然,首先检查ar
是否包含至少1个元素)。然后从1开始循环。
for(int i = 1;
(我不喜欢将small
初始化为非常大的数字,因为如果ar
没有任何元素,那么将函数的答案置于未定义的状态。)
答案 2 :(得分:1)
更改
int small = 0
到
int small = ar[0];
答案 3 :(得分:1)
不要初始化小= 0,
更改为int small = ar[0]
答案 4 :(得分:1)
您也可以使用
int small=Integer.MAX_VALUE;
取代
int small=0;
答案 5 :(得分:1)
此代码将打印small
值,给出最大整数
答案 6 :(得分:1)
更改此
public static void getSmall(int[] ar) {
int small = 0;
for (int i = 0; i < ar.length; i++) {
if (ar[i] < small)
small = ar[i];
}
System.out.println(small);
}
到
public static void getSmall(int[] ar) {
int small = ar[0];
for (int i = 1; i < ar.length; i++) {
if (ar[i] < small)
small = ar[i];
}
System.out.println(small);
}
因为变量small
未分配给数组中的任何值