我的程序应该显示在命令行输入的位数。它这样做但我在答案上的格式是错误的。例如,当我输入“22”时,我会以“数字in2is2”的形式获得输出。
谁能告诉我我做错了什么?
import java.util.Scanner;
public class test {
public static void main(String args[]){
int n;
int i=0;
System.out.print("Enter a Number:");
Scanner scanner = new Scanner(System.in);
n= scanner.nextInt();
while(n>0)
{
n=n/10;
i++;
}
System.out.println("Number of Digits in" +n +"is" +i);
}}
答案 0 :(得分:2)
变量n
除以10直到它变为0,然后你尝试打印它,因此输出错误。
这应该可以正常工作
public class test {
public static void main(String args[]){
int n;
int i=0;
System.out.print("Enter a Number:");
Scanner scanner = new Scanner(System.in);
n= scanner.nextInt();
int backUp = n;
while(n>0)
{
n=n/10;
i++;
}
System.out.println("Number of Digits in " +backUp +" is " +i);
}}
答案 1 :(得分:1)
在循环播放后,您正在打印n
0
。您需要将数字存储在另一个变量中,并在打印时使用该变量。
试试这个:
import java.util.Scanner;
public class Test2 {
public static void main(String args[]){
int m,n;
int i=0;
System.out.print("Enter a Number:");
Scanner scanner = new Scanner(System.in);
n= scanner.nextInt();
m=n;
while(n>0)
{
n=n/10;
i++;
}
System.out.println("Number of Digits in " +m +" is " +i);
}
}
如果您不想使用m
变量,那么:
public static void main(String args[]){
int n;
int i=0;
System.out.print("Enter a Number:");
Scanner scanner = new Scanner(System.in);
n= scanner.nextInt();
System.out.print("Number of Digits in " +n +" is ");
while(n>0)
{
n=n/10;
i++;
}
System.out.println(i);
}
答案 2 :(得分:1)
您的计划中存在逻辑错误。
例如,您在while循环中输入了'22':
while (n>10){
n = n/10;
i++;
}
它将继续划分n并增加i直到n达到0.
在while循环结束时,n为0,输入时不再为'22'。要解决这个问题,你应该使用一个临时变量'tmp'
public static void main(String args[]){
int n;
int i=0;
int tmp = n;
System.out.print("Enter a Number:");
Scanner scanner = new Scanner(System.in);
n= scanner.nextInt();
while(tmp>0)
{
tmp=tmp/10;
i++;
}
System.out.println("Number of Digits in " +n +" is " +i);
}
请注意,在初始代码中,您忘记在System.out.println()中添加空格
:d
答案 3 :(得分:0)
编写这样的代码。
import java.util.Scanner;
public class HelloWorld {
public static void main(String args[]){
int n;
int i=0;
System.out.print("Enter a Number:");
Scanner scanner = new Scanner(System.in);
n= scanner.nextInt();
int a=n;
while(n>0)
{
n=n/10;
i++;
}
System.out.println("Number of Digits in=" +a +"is" +i);
}}
将n
值保存在另一个变量中,并使用i
变量打印该变量并执行代码并显示输出