标题:[求助]
取消只看楼主
rl
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-4-2
 问题点数:0 回复次数:3 
[求助]
程序中有一块,需要将计算出来的金额(都是整数)转换成大写,我初步考虑用for+switch做
for(;val!=0;val/=10)
{
//用val%10依次取出各个值
//用switch转换成大写
}


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

请高手指点一下

谢过了
搜索更多相关主题的帖子: val switch 整数 金额 
2005-05-28 12:17
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
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-19549-1-1.html




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

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