| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 948 人关注过本帖
标题:[求助]
只看楼主 加入收藏
rl
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-2
收藏
 问题点数:0 回复次数:5 
[求助]
程序中有一块,需要将计算出来的金额(都是整数)转换成大写,我初步考虑用for+switch做
for(;val!=0;val/=10)
{
//用val%10依次取出各个值
//用switch转换成大写
}


但是依次取出来的数是重个位开始的.................
如果是整百之类的应该输出"壹百元整"而不是"壹百零十零元整".........

请高手指点一下

谢过了
搜索更多相关主题的帖子: val switch 整数 金额 
2005-05-28 12:17
zsh0435
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-5-21
收藏
得分:0 
好像只能这样。我给手机充值的时候,系统说大写就是这样的

人生就是一个程序! 人降生到这个世间就是主函数的开始。 我们生活中的每个部分都是程序中的一段代码。 在调用不同的函数。
2005-05-29 08:37
rl
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-2
收藏
得分:0 

哎~没人帮我~自食其力! #include<iostream> #include<vector>

using namespace std;

void main() { void change(int n); void unit(int n); int i(0); int val; cout<<"enter val:";//val是前面传下来的值 cin>>val; //输入为了调程序 vector<int>num(i); while(val) { num[i]=val%10; i++; val/=10; } for(;i>=1;i--) { change(num[i-1]); unit(i); } cout<<"整"<<endl; }

void change(int n) { switch(n) { case 0: cout<<"零"; break; case 1: cout<<"壹"; break; case 2: cout<<"贰"; break; case 3: cout<<"叁"; break; case 4: cout<<"肆"; break; case 5: cout<<"伍"; break; case 6: cout<<"陆"; break; case 7: cout<<"柒"; break; case 8: cout<<"捌"; break; case 9: cout<<"玖"; break; } }

void unit(int n) { switch(n) { case 1: cout<<"元"; break; case 2:case 6:case 10: cout<<"拾"; break; case 3:case 7: cout<<"佰"; break; case 4:case 8: cout<<"千"; break; case 5: cout<<"万"; break; case 9: cout<<"亿"; break; } } 比较复杂 而且第二个问题没有解决 哪位高手帮忙改一下 还有 每次都出现下面这个

图片附件: 游客没有浏览图片的权限,请 登录注册
2005-06-01 21:34
tary
Rank: 1
等 级:新手上路
帖 子:780
专家分:0
注 册:2004-10-5
收藏
得分:0 

我帮你改了下, 现在可以运行了.. #include<iostream>

using namespace std;

void main() { void change(int n); void unit(int n); int i=0; int val; int num[100]; cout<<"enter val:";//val是前面传下来的值 cin>>val; //输入为了调程序

while(val) { ++i; num[i]=val%10; val/=10; if(val==0) break; }

for(;i>=1;i--) { change(num[i]); unit(i); } cout<<"整"<<endl; }

void change(int n) { switch(n) { case 0: cout<<"零"; break; case 1: cout<<"壹"; break; case 2: cout<<"贰"; break; case 3: cout<<"叁"; break; case 4: cout<<"肆"; break; case 5: cout<<"伍"; break; case 6: cout<<"陆"; break; case 7: cout<<"柒"; break; case 8: cout<<"捌"; break; case 9: cout<<"玖"; break; default: cout<<"error"<<endl; } }

void unit(int n) { switch(n) { case 1: cout<<"元"; break; case 2:case 6:case 10: cout<<"拾"; break; case 3:case 7: cout<<"佰"; break; case 4:case 8: cout<<"千"; break; case 5: cout<<"万"; break; case 9: cout<<"亿"; break; default: cout<<"error"<<endl; } }


┌→¨ ≮我可以学会对你很冷落≯¨←┐ │  <却学不╓══╦══╖会将爱> │ │¨←┐ ╭╩╮哭‖哭╭╩╮ ┌→¨│ └──┘收 ╲╱ ◇‖◇ ╲╱回└──┘
2005-06-01 23:39
rl
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-2
收藏
得分:0 
谢谢!
我把
vector&lt;int&gt;num(i);
改成
vector&lt;int&gt;num(100);
也可以运行哈

以前出来那个警告是什么意思啊
2005-06-02 21:16
rl
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-2
收藏
得分:0 

//………… for(;i>=1;i--) { if(num[i-1]==0) { if(i!=5&&i!=9) continue; } change(num[i-1]); unit(i); } cout<<"元整"<<endl; }

void change(int n) { switch(n) { case 0: cout<<""; break; //………… 这样就可以输出"壹百万元整"而不是"壹百零拾零万零千零百零十零元整".........

2005-06-04 20:52
快速回复:[求助]
数据加载中...
 
   



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

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