| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4137 人关注过本帖
标题:输入两位数,显示该数的英文~ 如何编写(哪里错了)~~
只看楼主 加入收藏
天使的恶魔
Rank: 1
来 自:广东
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-9-14
结帖率:83.33%
收藏
已结贴  问题点数:15 回复次数:16 
输入两位数,显示该数的英文~ 如何编写(哪里错了)~~
编写一个程序,要求用户输入一个两位数,然后显示该数的英文单词:

Enter a two-digit number: 45
You entered the number forty-five.

提示:把数分解为两个数字。用一个switch语句显示第一位数字对应的单词(“twenty”、“thirty”等),
用第二个switch语句显示第二位数字对应的单词。不要忘记11-19需要特殊处理。

# include <stdio.h>
# include <stdlib.h>
int main (void)
{
    int x,y,n;
    printf ("Enter a two-digit number:");
    scanf ("%d%d\n",&x,&y);
    printf("You entered the nember ");
    switch (x) {
           case 2:  printf("twenty");    break;      
           case 3:  printf("thirty");    break;         
           case 4:  printf("forty");     break;        
           case 5:  printf("fifty");     break;      
           case 6:  printf("sixty");     break;   
           case 7:  printf("seventy");   break;   
           case 8:  printf("eighty");    break;     
           case 9:  printf("ninety");    break;     
           }
    switch (y) {
           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;
           }                  
           
    system ("pause");
    return 0;
}

请问我编写的哪里错了,还有11到19应该怎么写呢?
搜索更多相关主题的帖子: 位数 英文 编写 输入 
2010-10-16 12:50
天使的恶魔
Rank: 1
来 自:广东
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-9-14
收藏
得分:0 
调试时只是出现:

Enter a two-digit number
  
这一行

记住我最好的方式就是忘了我
2010-10-16 12:57
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:15 
程序代码:
你的要输入为 4 5\n 才能正确!
要去掉\n

# include <stdio.h>
# include <stdlib.h>
int main (void)
{
    int x,y,n;
    printf ("Enter a two-digit number:");
    scanf ("%d%d",&x,&y);
    printf("You entered the nember ");
    switch (x) {
           case 2:  printf("twenty-");    break;      
           case 3:  printf("thirty-");    break;         
           case 4:  printf("forty-");     break;       
           case 5:  printf("fifty-");     break;      
           case 6:  printf("sixty-");     break;  
           case 7:  printf("seventy-");   break;   
           case 8:  printf("eighty-");    break;    
           case 9:  printf("ninety-");    break;    
           }
    switch (y) {
           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;
           }                 
          
    system ("pause");
    return 0;
}

If You Want Something, Go Get It, Period.
2010-10-16 13:27
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
收藏
得分:0 
楼上正解
2010-10-16 13:40
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
帮你改了一下!你看行不?
程序代码:
# include <stdio.h>
# include <stdlib.h>
int main (void)
{
    char x,y;
    printf ("Enter a two-digit number:");
    scanf ("%c%c",&x,&y);
    printf("You entered the nember ");
    int m=x-'0';
    int n=y-'0';
    int s=10*m+n;
    if(s>=20)
    {
    switch (x) {
           case '2':  printf("twenty-");    break;      
           case '3':  printf("thirty-");    break;         
           case '4':  printf("forty-");     break;       
           case '5':  printf("fifty-");     break;      
           case '6':  printf("sixty-");     break;  
           case '7':  printf("seventy-");   break;   
           case '8':  printf("eighty-");    break;    
           case '9':  printf("ninety-");    break;    
           }
    switch (y) {
           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;
           }
    }
    else
    {
        switch(s)
        {
        case 11 : printf("eleven");     break;
        case 12 : printf("twelve");     break;
        case 13 : printf("thirteen");   break;
        case 14 : printf("fourteen");   break;
        case 15 : printf("fifteen");    break;
        case 16 : printf("sixteen");    break;
        case 17 : printf("seventeen "); break;
        case 18 : printf("eighteen");   break;
        case 19 : printf("nineteen");   break;
        }
    }
  
    system ("pause");
    return 0;
}



 

If You Want Something, Go Get It, Period.
2010-10-16 13:46
天使的恶魔
Rank: 1
来 自:广东
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-9-14
收藏
得分:0 
回复 5楼 m21wo
为什么要用 字符类型 char ?
用整形 int 为何不可呢?

记住我最好的方式就是忘了我
2010-10-16 14:02
天使的恶魔
Rank: 1
来 自:广东
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-9-14
收藏
得分:0 
回复 5楼 m21wo
int m=x-'0';
    int n=y-'0';
    int s=10*m+n;

还想请问:以上用
int s=10*x+y;

可以吗?不定义 m,n 了。
谢谢~

记住我最好的方式就是忘了我
2010-10-16 14:05
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
定义 整形的话,输入的时候就要注意了,譬如输入54 ,你就得输入5 4 ,中间要空格;而定义为字符就简单多了,直接可以输入54 。

还想请问:以上用
int s=10*x+y;

这肯定不行啊!我定义的x为字符啊!你这么做,x会转化成对应的ASCII码,就不会是x所对应的整数值啊!而用int m=x-'0';得的m就是一个差值正好为x数的整数值!


If You Want Something, Go Get It, Period.
2010-10-16 14:12
天使的恶魔
Rank: 1
来 自:广东
等 级:新手上路
帖 子:26
专家分:0
注 册:2010-9-14
收藏
得分:0 
回复 8楼 m21wo
哦,有点明白~

如果还是定义 x,y 整形,然后把scanf ("%d%d",&x,&y);  改为 scanf ("%1d%1d",&x,&y);
这样可以把两位数独立了吧?


记住我最好的方式就是忘了我
2010-10-16 14:34
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:0 
嗯!可以吧

If You Want Something, Go Get It, Period.
2010-10-16 15:53
快速回复:输入两位数,显示该数的英文~ 如何编写(哪里错了)~~
数据加载中...
 
   



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

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