问题是编写一个程序,该程序从终端输入一个键入的整数,并以英语提取并显示整数的每个数字.所以,如果用户输入932,程序应该显示'九三二'..
我的算法是首先反转数字,使932变为239.现在我使用mod运算符和print来提取最后一位数字.接下来我将数字除以10,然后我再次提取最后一位数字,依此类推......
是否有其他算法(更短,更有效)?
可以提取整数的最后一位数.是否可以提取第一个数字等等?
如果输入字符串fgets等,则可以跳过所有mod处理/反转
这些行上的东西(我没有错误检查,它只是一个伪代码)
char *numArray[]={"One", "Two", ....};
fgets(buffer, 80, stdin)
while ( buffer[i] )
{
printf("%s ", numArray[buffer[i]-'0'])
i++;
}
Run Code Online (Sandbox Code Playgroud)