PAT平台不支持gets、gets_s函数
#pragma warning(disable:4996)
#include<iostream>
#include<string>
#include<cstdio>
#include<cmath>
using namespace std;
int strlen(string a)
{
int n = 0;
while (a[n] != '\0')
n++;
return n;
}
void reverse(std::string& a)
{
int len = strlen(a);
for (int i = 0; i < len / 2; i++)
{
char temp;
temp = a[i];
a[i] = a[len - 1 - i];
a[len - 1 - i] = temp;
}
}
int main()
{
char num[10][5] = { "ling","yi","er","san","si","wu","liu","qi","ba","jiu" };
char wei[5][5] = { "Shi", "Bai", "Qian", "Wan","Yi" };
char str[15];
scanf("%s", str);
int len = strlen(str);
int left = 0, right = len - 1;
if (str[0] == '-')
{
printf("Fu");
left++;
}
while (left + 4 <= right)
{
right -= 4;
}
while (left < len)
{
int zeroflag = 0;
int isweiflag = 0;
while (left <= right)
{
if (left > 0 && str[left] == '0')
{
zeroflag = 1;
}
else
{
if (zeroflag == 1)
{
printf(" ling");
zeroflag = 0;
}
if (left > 0)
{
printf(" ");
}
printf("%s", num[str[left] - '0']);
isweiflag = 1;
if (left != right)
{
printf(" %s", wei[right - left - 1]);
}
}
left++;
}
if (isweiflag == 1 && right != len - 1)
{
printf(" %s", wei[(len - 1 - right) / 4 + 2]);
}
right = right + 4;
}
return 0;
}