题目如下:
代码如下,只能读出第一位数字,不知道哪里出错了
Scanner in = new Scanner(System.in);
int x=in.nextInt();
// 判断整数x是否在指定范围内
if(x>-100000 && x<100000)
{
// 如果是负数,先输出fu,然后转换为正数,方便运算
if(x<0)
{
System.out.print("fu ");
x=(-1)*x;
}
// 计算整数的mode
int mode=1;
int t=x;
while(t>9)
{
mode=mode*10;
t=t/10;
}
// 先计算整数的位数n,然后用mode正序分解出整数各个位数,并读出数字
int n=Integer.toString(x).length();
for(int i=0;i<n;i++);
{
int digit = x/mode;
switch(digit)
{
case 1:
System.out.print("yi ");
break;
case 2:
System.out.print("er ");
break;
case 3:
System.out.print("san ");
break;
case 4:
System.out.print("si ");
break;
case 5:
System.out.print("wu ");
break;
case 6:
System.out.print("liu ");
break;
case 7:
System.out.print("qi ");
break;
case 8:
System.out.print("ba ");
break;
case 9:
System.out.print("jiu ");
break;
case 0:
System.out.print("ling ");
break;
}
x=x%mode;
mode=mode/10;
}
}
else
{
System.out.println("输入有误,请重新输入");
}
in.close();