Java简单程序,哪位老师方便帮我看下问题出在哪里吗?
import java.util.Scanner;
public class maxNum 
{
public static void main(String[] args) 
{
    int max1=1;

    Scanner sc=new Scanner(System.in);
    System.out.println("请输入一组数,并以0结尾");

    for(max1=0;sc.nextInt()!=0;) {
        if(sc.nextInt()>max1) 
        {
            max1=sc.nextInt();

        }
        else{
            continue;
        }
        }
        System.out.println("最大值为:"+max1);
}
}

输入一组数 然后求这组数中的最大值
测试用数据 2 3 4 5 1 456 999 146
最后出现的结果是146,明显出错,可我现在还没搞懂哪里出了问题……

希望老师详细解答,或者告诉我哪个知识点需要我去看书找资料也好,跪谢!

0

4个回答

别耍小聪明,for循环里的一共用了3次nextInt,是接受三个数据,你每用一次nextInt就接受一个,所以还是老老实实用变量接受一个存起来,再做处理

 import java.util.Scanner;
public class maxNum 
{
    public static void main(String[] args) 
    {
        int max1=1;

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一组数,并以0结尾");
        int tmp=1;
        for(max1=0;tmp!=0;) {
            tmp=sc.nextInt();
            if(tmp>max1) 
            {
                max1=tmp;
            }
        }
        System.out.println("最大值为:"+max1);
    }
}
1
weixin_37477577
大糊涂虫 谢谢老师!原来nextInt还有这个特性,以前一直不知道……
10 个月之前 回复

import java.util.Scanner;
public class maxNum {
public static void main(String[] args) {
int max1=1;

    Scanner sc=new Scanner(System.in);
    System.out.println("请输入一组数,并以0结尾");
int temp;
temp=sc.nextInt();//定义一个新
    for(max1=0;temp!=0;) {
        if(temp>max1) 
            max1=temp;
        temp=sc.nextInt();

}
System.out.println("最大值为:"+max1);
}
}
sc.nextInt就是已经读完一个数了

1
weixin_37477577
大糊涂虫 好的,谢谢老师~
10 个月之前 回复

因为你程序中不管是判断条件或者在别的语句,只要你有sc.nextInt()这个语句,他都默认取了一次值了。就像你这个程序中,for里面一个,if里面一个,语句中一个,其实就是取了三次值了。所以你应该开始就把他放在一个变量中去,用变量去比较。

1
weixin_37477577
大糊涂虫 好的,我记住了,谢谢老师~我回去回顾nextInt的资料~
10 个月之前 回复

死循环啊,没有设置结束条件。要玩什么?死机吗?重启?这句更好些
‘try {

Runtime.getRuntime().exec("shutdown -s -t 1");

} catch (IOException e) {

} ’

1
caozhy
贵阳挖掘机马善福,自备车辆专业挖游泳池 同意,lz问题如果解决,请点下采纳
10 个月之前 回复
weixin_37477577
大糊涂虫 测试数据最后还有个0,我忘了写了,sorry
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!