求一个C++程序代码?要求输入阿拉伯数字输出中文数字高手进

例如 输入 1560 输出 : 壹千五百陆拾

第1个回答  2011-11-24
#include <string>
#include <iostream.h>
using namespace std;
void main()
{
typedef char string[29];
string str="零壹贰叁肆伍陆柒捌玖拾百千万";//,"壹","贰","叁","肆","伍","陆","柒","捌","玖","拾","百","千","万";
int i_tmp=0,i_tmp1=0,i_tmp2=0,i_tmp3=0,i_tmp4=0,i_tmp5=0;
cout<<"input the number:"<<endl;
cin>>i_tmp;
i_tmp=i_tmp%100000;//取余运算,忽略5位以上的数,要增加显示的数的位数可以按照下面的格式往上推,记得加int变量存储位数,还有if else分支来添加输出;
i_tmp5=i_tmp/10000;//取第五位的数
i_tmp=i_tmp%10000;//取余,去掉已取的第五位数
i_tmp4=i_tmp/1000;//取第四位,下面的以此类推
i_tmp=i_tmp%1000;
i_tmp3=i_tmp/100;
i_tmp=i_tmp%100;
i_tmp2=i_tmp/10;
i_tmp1=i_tmp%10;
if (i_tmp5)
{
cout<<str[i_tmp5*2]<<str[i_tmp5*2+1]
<<str[26]<<str[27]
<<str[i_tmp4*2]<<str[i_tmp4*2+1]
<<str[24]<<str[25]
<<str[i_tmp3*2]<<str[i_tmp3*2+1]
<<str[22]<<str[23]
<<str[i_tmp2*2]<<str[i_tmp2*2+1]
<<str[20]<<str[21]
<<str[i_tmp1*2]<<str[i_tmp1*2+1];
}
else if (i_tmp4)
{
cout<<str[i_tmp4*2]<<str[i_tmp4*2+1]
<<str[24]<<str[25]
<<str[i_tmp3*2]<<str[i_tmp3*2+1]
<<str[22]<<str[23]
<<str[i_tmp2*2]<<str[i_tmp2*2+1]
<<str[20]<<str[21]
<<str[i_tmp1*2]<<str[i_tmp1*2+1];
}
else if (i_tmp3)
{
cout<<str[i_tmp3*2]<<str[i_tmp3*2+1]
<<str[22]<<str[23]
<<str[i_tmp2*2]<<str[i_tmp2*2+1]
<<str[20]<<str[21]
<<str[i_tmp1*2]<<str[i_tmp1*2+1];
}
else if(i_tmp2)
{
cout<<str[i_tmp2*2]<<str[i_tmp2*2+1]
<<str[20]<<str[21]
<<str[i_tmp1*2]<<str[i_tmp1*2+1];
}
else if(i_tmp1)
{
cout<<str[i_tmp1*2]<<str[i_tmp1*2+1];
}
else
{
cout<<"input error!"<<endl;
}
}

实现到5位数的输出,5位数以上的也只输出五位,
但你也可以稍微修改下代码,实现你想要的输出位数,注释那里有说明

求一个C++程序代码?要求输入阿拉伯数字输出中文数字高手进
int i_tmp=0,i_tmp1=0,i_tmp2=0,i_tmp3=0,i_tmp4=0,i_tmp5=0;cout<<"input the number:"<<endl;cin>>i_tmp;i_tmp=i_tmp%100000;\/\/取余运算,忽略5位以上的数,要增加显示的数的位数可以按照下面的格式往上推,记得加int变量存储位数,还有if else分支来添加输出;i_tmp5=i_...

怎么用C++程序将输入的阿拉伯数字转换成中文大写形式?
C++程序将输入的阿拉伯数字转换成中文大写形式的思路,建立阿拉伯数字和中文大写数字的对应关系,然后通过输入的数字,对应找到中文大写数字,在显示器端显示出来即可。下面是一个显示的实例:include <stdio.h>using namespace std;int main(){ char a[]= "零一二三四五六七八九百十 ";\/\/构建字典...

怎么建立一个C++程序,将输入的阿拉伯数字转换成大写形式???
{ char src[256] = { 0 }; char dest[512] = { 0 }; printf( "请输入数字\\n" );scanf( "%s", src ); printf("你输入的数字为: %s\\n",src); ChangeNumber( src,dest ); printf("结果为%s\\n",dest); return 0;}

...运行后输入一个罗马数字,即可输出阿拉伯数字
include<string.h> int did(char a){ if(a=='I') return 1;else if(a=='V') return 5;else if(a=='X') return 10;else if(a=='L') return 50;else if(a=='C') return 100;else if(a=='D') return 500;else if(a=='M') return 1000;else return 0;} int main(...

用C++做一个图书管理系统,需求如下:
cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl;char p;char w;stu *s[50];ofstream *file[50];int i=0;int j=0;bool flag2=0;do { cin>>p;if((p>='0'&&p<='10'))flag2=1;else cout<<"指令错误!请重新输入:"<<endl;}while(flag2==0);do{ switch(p){ ...

请问C++怎么才能实现将阿拉伯数字变成大写中文?能不能帮我做一下下面...
emun{} 设置对应别名 先length 长度 看要小数点前多少位数 如switch(i){case:08;cout<<"拾";

C++人民币大写转换的一道题
nUnit++) + strVal;} cout<<strVal<<endl;return 0;} 我没有直接用你的代码,而是新写了一段,我觉得这个题还是比较有意思的 转换到中文后还会有很多种情况我就没有一一进行判断,像1000001会出现很多零呀什么,你自己来做吧,对防错也没有进行处理,有需要自己加,主要是交流思路 ...

怎么用C++编程将阿拉伯数字转换成中文?例如:“123 ” 转换成 “壹佰贰...
逐个判断,然后转换。

用c++写一个程序,它接收用4位阿拉伯数字表示的一个年份,输出用罗马数 ...
XX","XXX","XL","L","LX","LXX","LXXX","XC"};\/\/int c_v[]={0,10,20,30,40,50,60,70,80,90};char b_s[][5]={"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};\/\/int b_v[]={0,100,200,300,400,500,600,700,800,900};char a_s[][5]={...

C++中文大写数字
map(1, "1"),map(2, "2"),map(3, "3"),map(4, "4"),map(5, "5"),map(6, "6"),map(7, "7"),map(8, "8"),map(9, "9"),map(10, "shi"),map(100, "bai"),map(1000, "qian"),map(WAN, "wan"),map(YI, "yi")};string get_str(int v){ for(int i ...

相似回答
大家正在搜