| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1451 人关注过本帖
标题:条件判断
只看楼主 加入收藏
jokerhb
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-3-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
条件判断
题目:
编写一个程序,提示用户输入3个整数值,分别代表年,月,日。例如用户输入了2003,12,31,程序就以2003 december 31st的格式输出该日期。
必须在日期的后面加上th,nd,st和rd。例如1st,2nd,3rd,4th,11th,12th,13th,14th,21st,22nd,23rd,24th.
下面是我写的1-5个月的程序,测试了一下,基本可以实现,但是写的太繁琐,希望前辈们可以指点。刚学条件判断这章。
#include <stdio.h>
int main(void)
{
    int nian=0;
    int yue=0;
    int ri=0;
    printf("\n 请输入年月日: \n");
    scanf("%d %d %d",&nian,&yue,&ri);
    if(yue==1)
    {
        if(ri==1||ri==11||ri==21||ri==31)
            printf("\n 日期为:%d january %dst \n",nian,ri);
        else
            if(ri==2||ri==12||ri==22)
        printf("\n 日期为:%d january %dnd \n",nian,ri);
        else
            if(ri==3||ri==13||ri==23)
        printf("\n 日期为:%d january %drd \n",nian,ri);
        else
            printf("\n 日期为:%d january %dth \n",nian,ri);
    }
    if(yue==2)
    {
        if(ri==1||ri==11||ri==21||ri==31)
            printf("\n 日期为:%d february %dst \n",nian,ri);
        else
            if(ri==2||ri==12||ri==22)
                printf("\n 日期为:%d february %dnd \n",nian,ri);
            else
                if(ri==3||ri==13||ri==23)
                    printf("\n 日期为:%d february %drd \n",nian,ri);
                else
                    printf("\n 日期为:%d february %dth \n",nian,ri);
    }
    if(yue==3)
    {
        if(ri==1||ri==11||ri==21||ri==31)
            printf("\n 日期为:%d march %dst \n",nian,ri);
        else
            if(ri==2||ri==12||ri==22)
                printf("\n 日期为:%d march %dnd \n",nian,ri);
            else
                if(ri==3||ri==13||ri==23)
                    printf("\n 日期为:%d march %drd \n",nian,ri);
                else
                    printf("\n 日期为:%d march %dth \n",nian,ri);
    }
    if(yue==4)
    {
        if(ri==1||ri==11||ri==21||ri==31)
            printf("\n 日期为:%d april %dst \n",nian,ri);
        else
            if(ri==2||ri==12||ri==22)
                printf("\n 日期为:%d april %dnd \n",nian,ri);
            else
                if(ri==3||ri==13||ri==23)
                    printf("\n 日期为:%d april %drd \n",nian,ri);
                else
                    printf("\n 日期为:%d april %dth \n",nian,ri);
    }
    if(yue==5)
    {
        if(ri==1||ri==11||ri==21||ri==31)
            printf("\n 日期为:%d may %dst \n",nian,ri);
        else
            if(ri==2||ri==12||ri==22)
                printf("\n 日期为:%d may %dnd \n",nian,ri);
            else
                if(ri==3||ri==13||ri==23)
                    printf("\n 日期为:%d may %drd \n",nian,ri);
                else
                    printf("\n 日期为:%d may %dth \n",nian,ri);
    }
    return 0;
}
2016-04-27 22:32
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
收藏
得分:10 
if(ri==1||ri==11||ri==21||ri==31)
红色部分可改成 ri%10 == 1; 后面的同理
2016-04-27 22:41
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:10 
月份要改成英文输出,没学过字符串数组,估计楼上的说的应该是目前你能掌握的最简单写法了。
2016-04-28 01:01
jokerhb
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2016-3-16
收藏
得分:0 
非常感谢两位的帮助!
2016-05-03 22:16
快速回复:条件判断
数据加载中...
 
   



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

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