
C语言中的问题
用C语言,输入一个数,要求显示出它的读法,比如说:1234.67读成一千两百三十四点六七,4098.34读成四千零九十八点三四。不考虑负数的情况,然后数字是从0~9999...
用C语言,输入一个数,要求显示出它的读法,比如说:1234.67读成一千两百三十四点六七,4098.34读成四千零九十八点三四。不考虑负数的情况,然后数字是从0~99999的范围
该怎么编写呢?要用指针吗?给点提示也可以,谢谢啦~ 展开
该怎么编写呢?要用指针吗?给点提示也可以,谢谢啦~ 展开
展开全部
#include <stdio.h>
#include <string.h>
void main()
{
//注意:没有做输入非数字的检查容错。
char pNum[24];
printf("请输入一个数:");
scanf("%s", pNum);
char *psName[4] ={"万","千","百","十"};
char *psNumName[11]={"零","一","二","三","四","五","六","七","八","九"};
char *pTemp = strstr(pNum, ".");
int iLenAll = strlen(pNum);
int iLenTemp = pTemp == NULL?0:strlen(pTemp);
int iLen = iLenAll - iLenTemp;
int i = 0;
if(iLen > 5)
{
printf("整数不能超过5位\n");
return ;
}
//输出整数。
for(i=0; i<iLen-1; i++)
{
printf("%s", psNumName[pNum[i]-'0']);
if(pNum[i]-'0' != 0)
{
printf("%s", *(psName+5-iLen+i));
}
}
//输出个位
if(pNum[iLen-1]-'0' != 0)
{
printf("%s", psNumName[pNum[iLen-1]-'0']);
}
//输出小数
if(pTemp != NULL)
{
if(iLenTemp == 1)
{
return ;
}
printf("点");
pTemp ++;
for(i=0; i<iLenTemp-1; i++)
{
printf("%s", psNumName[pTemp[i]-'0']);
}
}
}
#include <string.h>
void main()
{
//注意:没有做输入非数字的检查容错。
char pNum[24];
printf("请输入一个数:");
scanf("%s", pNum);
char *psName[4] ={"万","千","百","十"};
char *psNumName[11]={"零","一","二","三","四","五","六","七","八","九"};
char *pTemp = strstr(pNum, ".");
int iLenAll = strlen(pNum);
int iLenTemp = pTemp == NULL?0:strlen(pTemp);
int iLen = iLenAll - iLenTemp;
int i = 0;
if(iLen > 5)
{
printf("整数不能超过5位\n");
return ;
}
//输出整数。
for(i=0; i<iLen-1; i++)
{
printf("%s", psNumName[pNum[i]-'0']);
if(pNum[i]-'0' != 0)
{
printf("%s", *(psName+5-iLen+i));
}
}
//输出个位
if(pNum[iLen-1]-'0' != 0)
{
printf("%s", psNumName[pNum[iLen-1]-'0']);
}
//输出小数
if(pTemp != NULL)
{
if(iLenTemp == 1)
{
return ;
}
printf("点");
pTemp ++;
for(i=0; i<iLenTemp-1; i++)
{
printf("%s", psNumName[pTemp[i]-'0']);
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、建立两个字串“零一二三...十”“万千百十”
2、把40098.34换成“四万零千零百九十八”+“点三四”
3、将其中的“零万、零千、零百、零十”变成“零”,去掉个位“零”
4、连续的“零”换成一个“零”
OK
2、把40098.34换成“四万零千零百九十八”+“点三四”
3、将其中的“零万、零千、零百、零十”变成“零”,去掉个位“零”
4、连续的“零”换成一个“零”
OK
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询