| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1209 人关注过本帖
标题:[求助]阿拉伯数字变英文数字遇到的问题
只看楼主 加入收藏
喝茶的小k
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-7-27
收藏
 问题点数:0 回复次数:4 
[求助]阿拉伯数字变英文数字遇到的问题

要求:从终端读取一个数字,然后用英语逐位显示出该数,例如,如果用户输入932,

程序的输出应为: nine three two

这个是我自己写的:
#include<stdio.h>

int main()
{
int number;
//scanf("%i",&number);
while(number!='\t')
{
scanf("%i",&number);
switch(number)
{
case 0 :
printf("zero ");
break ;
case 1 :
printf("one ");
break ;
case 2 :
printf("two ");
break ;
case 3 :
printf("three ");
break ;
case 4 :
printf("four ");
break ;
case 5 :
printf("five ");
break ;
case 6 :
printf("six ");
break ;
case 7 :
printf("seven ");
break ;
case 8 :
printf("eight ");
break ;
case 9 :
printf("nine ");
break ;
default :
printf("error:your input is not munber!\n");
break;
}
}
return 0 ;
} 
这个程序的问题是循环应该是按下Tab键就推出循环的,为什么按了却没退出循环?
还有就是我输入数字的时候要按空格或其它键把数字隔开,才能显示出结果(比如我想显示 nine three two,我输入数字的时候就应该输入9 3 2,)整样修改程序,使我连续输入数字的是后也能正确显示英文数字(输入932,显示nine three two )
请高手指点

搜索更多相关主题的帖子: 阿拉伯数字 英文 
2006-08-07 23:25
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 
char *EnWords[] = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
void Change(const char s[])
{
for(int i=0; '\0' != s[i]; i++)
if(isdigit(s[i])) printf("%s ", EnWords[s[i]-48]);
}

-------------------
你的 number 是 int 的, 卻判斷 int != '\t' ??

原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-08-07 23:45
喝茶的小k
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-7-27
收藏
得分:0 

看不太明白

能否解释一下


2006-08-08 00:19
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
#include<stdio.h>
int main()
{
char number;

while((number=getchar())!='\t')
{
switch(number-'0')
{
case 0 :
printf("zero ");
break ;
case 1 :
printf("one ");
break ;
case 2 :
printf("two ");
break ;
case 3 :
printf("three ");
break ;
case 4 :
printf("four ");
break ;
case 5 :
printf("five ");
break ;
case 6 :
printf("six ");
break ;
case 7 :
printf("seven ");
break ;
case 8 :
printf("eight ");
break ;
case 9 :
printf("nine ");
break ;
default :
printf("error:your input is not munber!\n");
break;
}
}
return(0);
}
/*因为是字符处理,所以输入时,按了TAB键,还要换行才可以退出*/

倚天照海花无数,流水高山心自知。
2006-08-08 08:55
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
2楼是这样做的,每次调用<string.h>中的判断是否为数字字符的函数isdigit(s[i]),如果是数字,则数字字符-‘0’(48)得到数字,对应数组下标的元素值输出!
例如:‘9’-‘0’=9

倚天照海花无数,流水高山心自知。
2006-08-08 08:58
快速回复:[求助]阿拉伯数字变英文数字遇到的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014831 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved