(JAVA新手)请教大家一个关于求出数组中最大最小值的问题;
我的代码是这样的,可是不能打印输出最小值,public class ShuZu{
public static void main(String[] args){
int score[] = {1,23,3,4,5,5623,5};
int max = 0;
int min = 0;
max = min =score[0];
for(int x =0;x<score.length;x++){
if(score[x]>max){
max = score[x];
}
if(score[x]<min);{
min = score[x];
}
}
System.out.println("最大数是:" + max);
System.out.println("最小数是:" + min);
}
}
程序输出;最大数是;5623
最小数是;5??????
不理解了!
希望得到指点,在此感激了!!!!! --------------------编程问答-------------------- if(score[x]<min);{
楼主这里不小心多了个分号: ";"。 --------------------编程问答-------------------- 你的第二个if语句多了一个分号,if(score[x]<min);{
min = score[x];
}
所以min = score[x] 导致min永远是数组最后一个数 --------------------编程问答-------------------- 对 多了一个分号 --------------------编程问答-------------------- if没有控制作用了 代码相当于下面的了 所以上最小值是最后一个数
public static void main(String[] args) {
int score[] = { 1, 23, 3, 4, 5, 5623, 77777777 };
int max = 0;
int min = 0;
max = min = score[0];
for (int x = 0; x < score.length; x++) {
if (score[x] > max) {
max = score[x];
}
{
min = score[x];
}
}
System.out.println("最大数是:" + max);
System.out.println("最小数是:" + min);
}
最大数是:77777777
最小数是:77777777
--------------------编程问答-------------------- --------------------编程问答-------------------- 谢谢大家的热心帮助,非常感谢你们的指正,再次谢过,看我的代码辛苦了!谢谢 --------------------编程问答-------------------- 呵呵,写代码一定要心细,不行的时候先debug一下。 --------------------编程问答-------------------- 写代码要多调试下,尤其是一些分号和逗号很恶心的 --------------------编程问答-------------------- --------------------编程问答--------------------
1楼一句道破,就不说啥了。
--------------------编程问答-------------------- --------------------编程问答--------------------
.................认真啊 --------------------编程问答-------------------- 只有你说到重点了。我现在刚好遇到这个问题了。请问这个最小值我该怎么得出来呢??不要if。结果还是一样的 。输出的是最后的值啊。。。。 --------------------编程问答-------------------- if(score[x] <= min)
{
min = score[x];
}
再加个if --------------------编程问答--------------------
不过,你这种查找算法,实在是弱爆了 --------------------编程问答-------------------- 刚才写的先排序然后取首尾
public static String sort(String args) {--------------------编程问答--------------------
String returnValue = "";
String[] atrArr = args.split(",");
for (int i = 0; i < atrArr.length; i++) {
for (int j = i + 1; j < atrArr.length; j++) {
if (Integer.valueOf(atrArr[i]) > Integer.valueOf(atrArr[j])) {
String temp = atrArr[j];
atrArr[j] = atrArr[i];
atrArr[i] = temp;
}
}
}
for (String s : atrArr) {
returnValue += s + ",";
}
return returnValue.substring(0, returnValue.length() - 1);
}
public static void main(String[] args) {
String s = "100,10,1,0,15,20";
System.out.print(sort(s));// 输出0,1,10,15,20,100,
}
建议先使用冒泡排序(或者其他排序算法)把数组从大到小(或者从小到大)排列一下,然后,你就知道哪个是最大,哪个是最小了,而不需要max = min = score[0];这种怪怪的赋值语句了
补充:Java , J2ME