写法和读法是不一样的

收据金额汉字大写表示,写法和读法是不一样的,如1001,读法为:壹仟零壹元整,写法为:壹仟零佰零拾壹元整。现以目前实际中的用法,试写,没考虑分角情况。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{

int len,i;
char source[16],*cn[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
printf("请输入一个不大于16位的整数(阿拉伯数字表示)n");
gets(source);
len=strlen(source);
printf("大写金额:");
for(i=0; i<len; i++)
{
printf("%s",cn[source[i]-'0']);
     if((len-i)%4==0) printf("仟");
        else if((len-i)%4==3) printf("佰");
        else if((len-i)%4==2) printf("拾");
     else {
               if((len-i)>12) printf("兆");
               else if((len-i)>8 ) printf("亿");
               else if((len-i)>4 ) printf("万");
               else printf("元");
           }
}
printf("整n");

return 0;
}