| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 770 人关注过本帖
标题:[求助]一个java程序,小弟刚学
只看楼主 加入收藏
weikie
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-4-19
收藏
 问题点数:0 回复次数:3 
[求助]一个java程序,小弟刚学
能通过编译,但是不能运行。。
import java.io.*;
public class money{
public char change1(int a)
{
char c='0';
switch(a){
case 9:c='玖';
case 8:c='捌';
case 7:c='柒';
case 6:c='陆';
case 5:c='伍';
case 4:c='肆';
case 3:c='叁';
case 2:c='贰';
case 1:c='壹';
case 0:c='零';
}
return c;
}
public char change2(int a){
char c='0';
switch(a%4){
case 0:c='元';
case 1:c='十';
case 2:c='百';
case 3:c='千';
}
return c;
}

public void main(String args[]){
float s=0;
System.out.print("请输入个浮点数:");
try{
s=(float)System.in.read();
}
catch(IOException e){
System.err.println(e.toString());
}
int p=(int)s; //取整数部分
float q=s-p;//取小数部分
int A[]=new int[12];//存储每位的数据
int i=0;
for(i=0;p>0;i++)
{
A[i]=p%10;
p=p/10;
}
for(;i>0;i++)
{
System.out.print(change1(A[i]));
if(A[i-1]==0&&A[i]==0){}
else System.out.print(change1(i));
if(i==8)System.out.print("亿");
else if(i==4)System.out.print("万");
}
if(q==0)System.out.println("整");
else{
int j=0;
j=(int)(10*q);
if(j!=0)System.out.print(change1(j)+"角");
else System.out.print("零");
j=(int)(100*q-10*j);
if(j!=0)System.out.print(change1(j)+"分");
}

System.out.println();
}
}
搜索更多相关主题的帖子: java 
2006-11-06 19:15
云中雾
Rank: 1
等 级:新手上路
威 望:1
帖 子:168
专家分:3
注 册:2005-12-30
收藏
得分:0 

你的算法是不是有点问题,总是说数组溢出。还有你的程序里问题太多了,我帮你改了下,但是还没有正确的结果,我把程序贴出来,你再改一下,还有我不知道你的这个程序是要做什么?

import java.io.*;

class method{
public String change1(int a)
{
String c="";
switch(a){
case 9:c="玖";
case 8:c="捌";
case 7:c="柒";
case 6:c="陆";
case 5:c="伍";
case 4:c="肆";
case 3:c="叁";
case 2:c="贰";
case 1:c="壹";
case 0:c="零";
}
return c;
}
public String change2(int a){
String c="";
switch(a%4){
case 0:c="元";
case 1:c="十";
case 2:c="百";
case 3:c="千";
}
return c;
}

}

public class money{

public static void main(String args[]){
method pt=new method();
BufferedReader x = new BufferedReader(new InputStreamReader(System.in));
float s=0;
System.out.print("请输入个浮点数:");
try{
s=Float.parseFloat(x.readLine());
System.out.println(s);
System.out.println((int) s);
}
catch(IOException e){
System.err.println(e.toString());
}
//int p=Integer.parseInt(s); //取整数部分
int p=(int) s;
float q=s-p;//取小数部分
int A[]=new int[12];//存储每位的数据
int i=0;
for(i=0;p>0;i++)
{
A[i]=p%10;
p=p/10;
}
for(i=1;i>0;i++)
{
System.out.print(pt.change1(A[i]));
if(A[i-1]==0&&A[i]==0){}
else
System.out.print(pt.change1(i));
if(i==8)
System.out.print("亿");
else if(i==4)
System.out.print("万");
}
if(q==0)
System.out.println("整");
else{
int j=0;
j=(int)(10*q);
if(j!=0)
System.out.print(pt.change1(j)+"角");
else
System.out.print("零");
j=(int)(100*q-10*j);
if(j!=0)
System.out.print(pt.change1(j)+"分");
}

System.out.println();
}
}


白色的忧郁让我白色的思念从洁白到苍白,从苍白到空白,比空白更空白,变成深白的坦白!
2006-11-06 20:26
weikie
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-4-19
收藏
得分:0 
读入一个浮点数值,将其转换为中文金额的大写方式,如123.45,转换为:壹佰贰拾叁元肆角伍分。要求:
(1)当金额为整数时,只表示整数部分,省略小数部分,并添加“整”字。例如,123表示为:壹佰贰拾叁元整;
(2)当金额中含有连续的0时,只需写一个“零”即可,例如, 10005表示为:壹万零伍元整;
(3)10的表示方式,例如,110元表示为:壹佰壹拾元整,而10则表示为:拾元整。

这个程序的要求是这样的
2006-11-06 20:38
孤风的边缘
Rank: 1
等 级:新手上路
威 望:2
帖 子:66
专家分:0
注 册:2006-11-19
收藏
得分:0 

大体扫了一下,初步发现如下几个问题:

第一:public void main(String args[]){}这句是有问题的~~main函数要运行格式为:public static void main(String args[])

第二:你在main函数里调用change1()这个方法时,因为change1()该方法并非静态的,所以你应当在main函数里先写一句Money money = new Money(); 然后money.change1()这样来调用~

第三:也就是2楼的云中雾mm所说的为什么会出现数组溢出的问题,原因在这里:
for(i=0;p>0;i++)
{
A[i]=p%10;
p=p/10;
}

这是一个死循环。。。(汗,这个循环死的。。。太酷了)

PS:另外,建议楼主在定义类名的时候第一个字母大写,这是编程的国际规范问题~呵呵,还是最好力求规范吧~~不然的话money money = new money();这样也不好看是吧~

时间有限,不能细看,抱歉,请楼主更改完这三个错误后再进行调试,如果还是不行我再看~

[此贴子已经被作者于2006-11-19 17:35:21编辑过]


把爱留给爱你的人。。。。
2006-11-19 17:25
快速回复:[求助]一个java程序,小弟刚学
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017152 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved