简单错误:输出格式

时间:2013-10-09 08:12:04

标签: java

我的程序应该显示在命令行输入的位数。它这样做但我在答案上的格式是错误的。例如,当我输入“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);

}}

4 个答案:

答案 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变量打印该变量并执行代码并显示输出