一个简单的java小问题 (在线等!)

来源:百度知道 编辑:UC知道 时间:2024/04/28 11:42:57
程序是这样的,我想实现这个功能:输入一个数字,然后可以计算处他的阶乘.程序如下:
import java.io.IOException;
public class Shurushu
{
public static void main(String[] args)
{
int c=0;
System.out.println("please enter a number:");
try
{c=(int)System.in.read();}
catch(IOException e)
{ System.err.println(e.toString());}
System.out.println(c);

Jiechen jc=new Jiechen(c);
int J=jc.qiuji();
System.out.println(c+"的阶乘是"+J);
}
}

定义的类和方法如下:

public class Jiechen {
int temp=1,q=1;
private int s;
public Jiechen(int s)
{
this.s=s;
}
public int qiuji()
{
for(int i=1;i<=s;i++)
{
temp=i*temp;
}
return temp;
}
}
运行是可以运行,但是结果不对。输入的数字和显示的数字不符合,而且阶乘都是0
请哪位高手指点!解决问题立即给分!
谢谢

c=(int)System.in.read();
这步不对,一般这么写:
InputStringReader in=new InputString(System.in);
BufferedReader br=new BufferedReader(in);
c=Integer.parseInt(br.readLine());
更正:是InputStringReader in=new InputStringReader(System.in);~~

c=(int)System.in.read();
这里的问题
应该写成
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
int c=Integer.parseInt(s);