网站首页  |   业界社区  |  电信社区  |  技术社区   |  极客社区  |  游戏社区  |  生活社区   |   科技博客  |   同事录
TechWeb-技术社区


标题: [java] 帮忙看看这个程序错在哪
生活周刊
TW金牌会员
Rank: 6Rank: 6



UID 117203
精华 16
积分 1388
帖子 747
阅读权限 70
注册 2007-3-12
状态 离线
发表于 2008-8-28 14:14 资料 短消息 加为好友
帮忙看看这个程序错在哪

public static void main(String[] args)
:^$r)\9d9f/e,r/a(`TechWeb-技术社区    { 5U-S1v8\4e&D7Q!a
      int month=0; -K%X&p*u9a,|1Z-x5H
      int amount_pp=1;
5D*w)L/[$O#H8u+m      int amount_p=1;
k8J.?8Z(w0O.`9xtech.techweb.com.cn      int amount=0;
|-C&^1`-Q9U1o5E1^%l*h'K7b      TechWeb-技术社区0C"@#_$c,J:E6z
      System.out.println("请输入对应的月份:"); TechWeb-技术社区2v(O-w'u"M%L*|$m%p
      try 程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛.U,g$i8{-Z)C'?
      { /f"F4B'e3_*Z1j)`
          month=System.in.read(); tech.techweb.com.cn-i0a2p4Z6J'R
      } 2O$L*I.S4x
      catch(Exception e)
+H#O(A8C2Y%c*V!S0\2a      {
7\ ]$M.y+A&Z,f3~*E5MTechWeb-技术社区          System.out.println(" 数据有错误!"); TechWeb-技术社区9P,V$E;K4Y:Y
      }
.O"};V1H#W%~0k#Ntech.techweb.com.cn      System.out.println("*"); .c!m2|8y;A:Q.^"b%@(G
      System.out.println(month); 5C9A3r:x6Z I
      System.out.println("*"); tech.techweb.com.cn7|;T*{;x._#L(k3g
      for(int i=3;i<=month;i++) 7q"U"X9}1~8R"l']:V
      { tech.techweb.com.cn"u$v8Z;F*g$B(J1O
          amount=amount_p+amount_pp; TechWeb-技术社区(Y*j-q*O6t0}"H6C
          amount_pp=amount_p;
6j"h&J#O,l程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛          amount_p=amount;
)S!q"K8]"h+T"o'T*[%L          %L6z(h7z:x#C
         
2z0H#S0f&I'W \8d程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛      }
"l f8L7Z*_!h5S4UTechWeb-技术社区      System.out.println("rubbit amount is:"+amount);
)u2t7X"F9c;\,n,o$Htech.techweb.com.cn      } !{/I5X7s N&m
      
.D!z;^;l#N7j"Z  }
._.Q/M+D/]'W;s2otech.techweb.com.cn输入4,即给month赋值4,再次输出就显示52,怎么回事?哪里错了

引用 回复 顶部
游客
未注册









发表于 2008-9-17 12:11
("*&quot??????????

什么东西???

不懂

引用 回复 顶部
游客
未注册









发表于 2008-9-17 12:11
读数据的时候就出问题了.

引用 回复 顶部
游客
未注册









发表于 2008-9-17 12:12
首先要纠正一点的是System.in是一个未包装过的PrintStream对象,也就是说它的功能是不完善的,应该用其它的输入流将其包装起来使用,而且用System.in.read()方法读出来的是你输入的字符的ascii码,因为你的所有输入会被当用字符处理,而不是数字,所以你需要将输入的东西通过Integer.parseInt()方法转换成数值,具体代码如下:
public static void main(String[] args) {
String month="" ;
int amount_pp = 1;
int amount_p = 1;
int amount = 0;
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入对应的月份:");
try {
month = br.readLine();
} catch (Exception e) {
System.out.println(" 数据有错误!");
}
int mon=Integer.parseInt(month);
System.out.println("*");
System.out.println(mon);
System.out.println("*");
for (int i = 3; i <= mon; i++) {
amount = amount_p + amount_pp;
amount_pp = amount_p;
amount_p = amount;
}
System.out.println("rubbit amount is:" + amount);
}

引用 回复 顶部
游客
未注册









发表于 2008-9-17 12:12
month=System.in.read();
这句不对,这样month的值是4对应的ascii码,改成这样就可以了
byte[] bs = new byte[5];
System.in.read(bs);
String s = new String(bs);
month = Integer.parseInt(s.substring(0,s.lastIndexOf("\r\n")));

引用 回复 顶部
游客
未注册









发表于 2008-9-17 12:12
"=="
&lt;== <
Html代码和程序混在一起了……汗一个……
4、6楼改得都可以

引用 回复 顶部
游客
未注册









发表于 2008-9-17 13:53
建议使用Scanner读入数据.

引用 回复 顶部
游客
未注册









发表于 2008-9-17 13:53
,我写的那个关于包装的部分是参照think in java来写的,13楼说的是core java中的写法,我个人也比较倾向用scanner,只是上午一着急就随便找一个写,我检讨

引用 回复 顶部
游客
未注册









发表于 2008-9-17 13:53
System.out.println("");-->直接用引号就可以了

输入用Scanner

import java.util.scanner.*;

Scanner sc = new Scanner(System.in);

String str = sc.next();
scanner有好多的类型选择。
sc.nextInt()等
可以自己选择用哪个

这样输入比较方便……

引用 回复 顶部
游客
未注册









发表于 2008-9-17 13:53
要将输入字符转换成整形就可以了

引用 回复 顶部
查看积分策略说明快速回复主题
选项 标题 Smilies
禁用 URL 识别
禁用 Smilies
禁用 Discuz!代码
使用匿名发帖
使用个人签名
接收新回复邮件通知
内容





当前时区 GMT+8, 现在时间是 2008-11-23 08:58
京ICP证060517号

本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0 © 2001-2008 Comsenz Inc.
Processed in 0.030036 second(s), 7 queries

清除 Cookies - 联系我们 - TechWeb.com.cn - Archiver - WAP