/************************************************************************/
/* 功能:将整数-1,025,050输出为:负壹佰零贰万伍仟零伍拾
/* 参数:nC 输入的数
/* nBit 第几位
/* nZr 零的个数
/* 作者:王丽君
/* QQ: 174636594 */
/************************************************************************/
void Out(int nC,int nBit = 0, int nZr = 0)
{
if(nC < 0)
{
cout << "负";
nC = -nC;
}
int nY = 0;
if(nC == 0)
return;
nY = nC % 10;
if(nBit == 4)//如果到了万位,将0的个数进行初始化。
nZr = 0;
if(nY == 0)//如果求余得到的结果是0,则将0的个数加1
++nZr;
if(nY != 0)//如果得到的结果不为0,则将0的个数进行初始化
nZr = 0;
Out(nC/10, ++nBit, nZr);
switch (nY)
{
case 0: if(nZr==1 && nBit!=5 && nBit!=1)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";break;
}
switch (nBit)
{
case 1:break;
case 2:if(nY != 0)cout << "拾";break;
case 3:if(nY != 0)cout << "佰";break;
case 4:if(nY != 0)cout << "仟";break;
case 5:cout << "万";break;
case 6:if(nY != 0)cout << "十";break;
case 7:if(nY != 0)cout << "百";break;
case 8:if(nY != 0)cout << "千";break;
case 9:cout << "亿";break;
default:cout << "out";break;
}
}