我是新手,这是我昨晚编的程序,编译环境是MS_VC++6.0,请大家多多指教啊:
#include<iostream>
#include<string>
using namespace std;
int n[5];
//检测数字
int check(int a)
{
if(a>=100000)
{
cout<<"\n输入的数字不能超过5个!没看见吗?\n\n";
return 0;
}
else return 1;
}
//提取数字
int get(int num)
{
int i;
for(i=0;i<5;i++)
{
n[i]=num%10;
num=(num-n[i])/10;
}
return n[i];
}
//转换成汉字
string convert(int a)
{
string c1[10];
switch (a)
{
case 0:
c1[0]="零";
break;
case 1:
c1[1]="一";
break;
case 2:
c1[2]="二";
break;
case 3:
c1[3]="三";
break;
case 4:
c1[4]="四";
break;
case 5:
c1[5]="五";
break;
case 6:
c1[6]="六";
break;
case 7:
c1[7]="七";
break;
case 8:
c1[8]="八";
break;
case 9:
c1[9]="九";
break;
}
return c1[a];
}
//显示单位
string danwei(int a)
{
string c2[5];
switch(a)
{
case 0:
c2[0]="";
break;
case 1:
c2[1]="十";
break;
case 2:
c2[2]="百";
break;
case 3:
c2[3]="千";
break;
case 4:
c2[4]="万";
break;
}
return c2[a];
}
//打印结果
void print()
{
int i,flag1=-1,flag2=-1;
for(i=0;i<5;i++)
if(n[i]!=0) flag1=i;
for(i=4;i>=0;i--)
if(n[i]!=0) flag2=i;
if(flag1!=-1&&flag2!=-1)
{
cout<<"\n转换为汉字为:";
for(i=flag1;i>=flag2;i--)
{
if(n[i]!=0) cout<<convert(n[i])<<danwei(i);
else
if(n[i+1]!=0)
cout<<convert(n[i]);
}
cout<<endl<<endl;
}
else
cout<<"\n转换为汉字为:零\n\n";
}
int main()
{
cout<<"请输入阿拉伯数字(不超过5个):";
int num;
cin>>num;
if(check(num))
{
get(num);
print();
}
return 0;
}