| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 726 人关注过本帖, 1 人收藏
标题:[求助]用if 和switch语句不能解决问题。能不能把程序简单化。
取消只看楼主 加入收藏
qq25257758
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2011-4-19
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:3 
[求助]用if 和switch语句不能解决问题。能不能把程序简单化。
c语言入门经典(美。霍顿)习题:输入日月年,输出日月年。输出格式为:例如输入12,12,2003,输入12th,December,2003.
大家看看有我这么编程的么。
有好多错啊,有没有更好的算法。
#include<stdio.h>
int main(void)
{
     int   year;
     char month,date;
     scanf("%c%c%d",&date,&month,&year);
     if(date=='1')
        date='1st';
     if(date=='2')
        date='2nd';
     if(date=='3')
        date='3rd';
     if(date=='4')
        date='4th';
     if(date=='5')
        date='5th';
     if(date=='6')
        date='6th';
     if(date=='7')
        date='7th';
     if(date=='8')
        date='8th';
     if(date=='9')
        date='9th';
     if(date=='10')
        date='10th';
     if(date=='11')
        date='11st';
     if(date=='12')
        date='12nd';
     if(date=='13')
        date='13rd';
     if(date=='14')
        date='14th';
     if(date=='15')
        date='15th';
     if(date=='16')
        date='16th';
     if(date=='17')
        date='17th';
     if(date=='18')
        date='18th';
     if(date=='19')
        date='19th';
     if(date=='20')
        date='20th';
     if(date=='21')
        date='21st';
     if(date=='22')
        date='22nd';
     if(date=='23')
        date='23rd';
     if(date=='24')
        date='24th';
     if(date=='25')
        date='25th';
     if(date=='26')
        date='26th';
     if(date=='27')
     date='27th';
     if(date=='28')
        date='28th';
     if(date=='29')
        date='29th';
     if(date=='30')
        date='30th';
     if(date=='31')
        date='31st';
switch(month)
     {case'1':
         month='January';
     break;
     case'2':
         month='February';
     break;
     case'3':
         month='March';
     break;
     case'4':
         month='April';
     break;
     case'5':
         month='May';
     break;
     case'6':
         month='June';
     break;
     case'7':
         month='July';
     break;
     case'8':
         month='August';
     break;
     case'9':
         month='September';
     break;
     case'10':
         month='October';
     break;
     case'11':
         month='November';
     break;
     case'12':
         month='December';
     break;
     default:
         printf("input erro");
     break;
      }
     printf("%c%c%d",date,month,year);
     return 0;
}
搜索更多相关主题的帖子: c语言 经典 霍顿 
2011-04-21 17:57
qq25257758
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2011-4-19
收藏
得分:0 
回复 3楼 voidx
真强,言简意赅。要是让霍顿知道了,他得多高兴啊。
2011-04-21 20:36
qq25257758
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2011-4-19
收藏
得分:0 
回复 10楼 唯我独魔
他们给出的答案是书上的原题,呵呵。书上确实是那么要求的(1st,2nd,3rd,11st,12nd,13rd,21st,22nd,23rd,31st,其余是th),也许他们以前都做过。也许。。。。。。。。


但是英语里面应该除了1,2,3其余都是th吧
2011-04-21 20:42
qq25257758
Rank: 1
等 级:新手上路
帖 子:8
专家分:1
注 册:2011-4-19
收藏
得分:0 
回复 8楼 唯我独魔
为什么是:char mon[12][10]={"January","February","March","April","May","June","July","August","September","October","November","December"};
    char da[4][3]={"st","nd","rd","th"};

而不是char mon[12]{"January","February".........},char da[4]{"st","nd","rd","th"}
2011-04-21 20:55
快速回复:[求助]用if 和switch语句不能解决问题。能不能把程序简单化。
数据加载中...
 
   



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

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