如何定位5位整数中的最大值?它总是打印CCD_ 1,即使最大的数字不是最后一个数字。
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int digit = 0, lastdigit = 0, middledigit = 0, firstdigit = 0;
while(num > 0) {
digit = num % 10;
if(digit > lastdigit) {
lastdigit = digit;
System.out.println("Rightmost");
return;
}
if(digit > middledigit) {
middledigit = digit;
System.out.println("Middle");
return;
}
if(digit > firstdigit) {
firstdigit = digit;
System.out.println("Leftmost");
return;
} else {
System.out.println("Unknown");
}
num /= 10;
}
输入:14632
输出:Rightmost
预期输出:Middle
如果以上都不正确,则会打印未知。
输入:77787
输出:Unknown
您可以创建一个包含5位数字的数组,获得最大值,然后:
Arrays.asList(array(.indexOf(最大值(
您也可以使用:
int[] my_array={1,4,6,3,2};
int index_of_largest=0;
int maximum=array[0];
for(int i=1;i<array.length;i++){
if(my_array[i]>maximum){
index_of_largest =i;
maximum=array[i];
}
}
由于lastdigit
为0,代码无法按预期工作,如果您检查的数字大于0,程序将在while循环到达if(digit > lastdigit)
中的return;
行时返回终止while循环。这样可以防止while循环从程序到其他数字以找到正确答案。
此外,while循环中的当前if语句无法确定它现在正在检查哪个数字。您可能需要使用for循环,或者在while循环之前定义一个计数器变量。