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,明显出错,可我现在还没搞懂哪里出了问题……
希望老师详细解答,或者告诉我哪个知识点需要我去看书找资料也好,跪谢!
别耍小聪明,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);
}
}
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就是已经读完一个数了
因为你程序中不管是判断条件或者在别的语句,只要你有sc.nextInt()这个语句,他都默认取了一次值了。就像你这个程序中,for里面一个,if里面一个,语句中一个,其实就是取了三次值了。所以你应该开始就把他放在一个变量中去,用变量去比较。
死循环啊,没有设置结束条件。要玩什么?死机吗?重启?这句更好些
‘try {
Runtime.getRuntime().exec("shutdown -s -t 1");
} catch (IOException e) {
} ’