1输入一个小写金额值(如1002300.90)
2将它的每一位分离出来并存入到一个一位数组中,每一位数存入到一个数组元素中
3将它转化为大写金额值并输出
(这是帮同学写的作业,她们学C,因此我写了注解。不知为什么,当输入位数变多时,角数数不出来)
#include<iostream> //换成stdio.h
using namespace std; //C中省去这句
int main()
{
long double a;
string str;
int b[20];
char t[12] [10]={"","十","百","千","","十","百","千","","十"};
cout<<"请输入一个小于20亿,且精确到角的金额
"; //输出这句话
cin>>a;// 输入双精度的a
int c=a;
double tmp=(a-c)*10;
int sum=-1;
for( int i=0;c>0;i++)
{
sum++;
b[i]=c%10;
c=c/10;
}
int h=0;
for( ;sum>=8&&sum<=9;sum--)
{
h=1;
if(b[sum]!=0)
{
if(b[sum]==1) //以下为分别输出一到九 汉字,注意:没有换行符
cout<<"壹";
if(b[sum]==2)
cout<<"贰";
if(b[sum]==3)
cout<<"叁";
if(b[sum]==4)
cout<<"肆";
if(b[sum]==5)
cout<<"伍";
if(b[sum]==6)
cout<<"陆";
if(b[sum]==7)
cout<<"柒";
if(b[sum]==8)
cout<<"捌";
if(b[sum]==9)
cout<<"玖";
cout<<t[sum];
}
}
if(h==1)
cout<<"亿";
h==0;
for( ;sum>=4&&sum<=7;sum--)
{
h=1;
if(b[sum]!=0)
{
if(b[sum]==1) //以下为分别输出一到九 汉字,注意:没有换行符
cout<<"壹";
if(b[sum]==2)
cout<<"贰";
if(b[sum]==3)
cout<<"叁";
if(b[sum]==4)
cout<<"肆";
if(b[sum]==5)
cout<<"伍";
if(b[sum]==6)
cout<<"陆";
if(b[sum]==7)
cout<<"柒";
if(b[sum]==8)
cout<<"捌";
if(b[sum]==9)
cout<<"玖";
cout<<t[sum];
}
}
if(h==1)
cout<<"万";
for( ;sum>=0&&sum<=3;sum--)
{
if(b[sum]!=0)
{
if(b[sum]==1) //以下为分别输出一到九 汉字,注意:没有换行符
cout<<"壹";
if(b[sum]==2)
cout<<"贰";
if(b[sum]==3)
cout<<"叁";
if(b[sum]==4)
cout<<"肆";
if(b[sum]==5)
cout<<"伍";
if(b[sum]==6)
cout<<"陆";
if(b[sum]==7)
cout<<"柒";
if(b[sum]==8)
cout<<"捌";
if(b[sum]==9)
cout<<"玖";
cout<<t[sum];
}
}
cout<<"元";
cout<<tmp<<endl;
if(tmp!=0)
{ //以下给行为输出一到九的汉字,注意:没有换行符
cout<<"零";
if(tmp==1)
cout<<"壹";
if(tmp==2)
cout<<"贰";
if(tmp==3)
cout<<"叁";
if(tmp==4)
cout<<"肆";
if(tmp==5)
cout<<"伍";
if(tmp==6)
cout<<"陆";
if(tmp==7)
cout<<"柒";
if(tmp==8)
cout<<"捌";
if(tmp==9)
cout<<"玖";
cout<<"角"<<endl; //输出角这个字和换行符
}
return 0;
}