| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1184 人关注过本帖
标题:请问谁有办法优化一下
取消只看楼主 加入收藏
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:12 
请问谁有办法优化一下
题目是输入某年某月某日,判断这一天是这一年的第几天?
不改思路
#include<stdio.h>
int main(void)
{
    int x,y,z,n;
    printf("请输入年月日:");
    scanf("%d%d%d",&z,&y,&x);
    if(x>0&&y>0&&z>0&&x<31&&y<=12)
    {
        if((z%4==0&&z%100!=0)||(z%400==0))
        {
            if(y==1)
            {
                n=x+(y-1)*31;
                printf("是%d年的第%d天。\n",z,n);
            }
            else if(y==2&&x<28)
            {
                n=x+(y-1)*31;
                printf("是%d年的第%d天。\n",z,n);
            }
            else if(y%2==0)
            {
                if(x<=30)
                {
                    if(y<8)
                        n=x+y/2*31+28+(y/2-1)*30;
                    else if(y<12)
                        n=x+31*4+30*2+28+(y/2-3)*31+(y/2-4)*30;
                    printf("是%d年的第%d天。\n",z,n);
                }
                else
                    printf("你的输入有误!\n请从新执行程序!\n");
            }
            else
            {
                if(x<=31)
                {
                    if(y<8)
                        n=x+y/2*31+28+(y/2-1)*30;
                    else if(y<=12)
                        n=x+31*4+30*2+28+(y/2-3)*31+(y/2-4)*30;
                    printf("是%d年的第%d天。\n",z,n);
                }
                else
                    printf("你的输入有误!\n请从新执行程序!\n");
            }
        }
        else
        {
            if(y==1)
            {
                n=x+(y-1)*31;
                printf("是%d年的第%d天。\n",z,n);
            }
            else if(y==2&&x<29)
            {
                n=x+(y-1)*31;
                printf("是%d年的第%d天。\n",z,n);
            }
            else if(y%2==0)
            {
                if(x<=30)
                {
                    if(y<8)
                        n=x+y/2*31+29+(y/2-1)*30;
                    else if(y<12)
                        n=x+31*4+30*2+29+(y/2-3)*31+(y/2-4)*30;
                    printf("是%d年的第%d天。\n",z,n);
                }
                else
                    printf("你的输入有误!\n请从新执行程序!\n");
            }
            else
            {
                if(x<=31)
                {
                    if(y<8)
                        n=x+y/2*31+29+(y/2-1)*30;
                    else if(y<=12)
                        n=x+31*4+30*2+29+(y/2-3)*31+(y/2-4)*30;
                    printf("是%d年的第%d天。\n",z,n);
                }
                else
                    printf("你的输入有误!\n请从新执行程序!\n");
            }
        }
    }
    else
        printf("你的输入有误!\n请从新执行程序!\n");
    return 0;
}
搜索更多相关主题的帖子: 优化 void include 年月日 
2012-01-19 04:04
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
麻烦顺便找一下漏洞
2012-01-19 04:10
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
回复 7楼 beyondyf
是很简单,但是很多漏洞,比如说如果是输入2009 u 9程序就会错误
2012-01-19 18:09
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
回复 3楼 有容就大
这个我也想到了,但是我只想优化这个程序而已
2012-01-19 18:11
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
回复 10楼 有容就大
现在printf中提示用空格隔开年月日如果没有根据提示执行的,你试试就知道了..嘻嘻
2012-01-19 18:28
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
回复 6楼 zhangxiangD
麻烦大哥,我是要优化加除漏,如果我输入day的时候输入33天,程序执行不会有错误吗?如果没有那我输入2009 u 2呢?
2012-01-19 18:30
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
回复 14楼 TonyDeng
不要重复那么多if-else语句
2012-01-19 19:35
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
回复 18楼 beyondyf
但是我们学软件的,不是每次编程都应该把一些不合理化情况和合理化情况考虑在里面,而且每个使用这些程序的人员不全部是编程人员,误输时程序继续会执行下去,那我们不是应该提醒一下使用人员么?为什么说这是进程的是?
这些东西不都是人写出来的么?
2012-01-19 20:53
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
回复 19楼 TonyDeng
我试试
2012-01-19 20:54
a249426519
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-1-13
收藏
得分:0 
回复 23楼 beyondyf
楼主,我没有什么冒犯你的意思,只是我刚刚入门,很多东西都不懂,有什么冒犯在这里向你道歉,我也知道楼主很厉害,你写的我看不懂,但是运行是可以的,谢谢
2012-01-20 02:29
快速回复:请问谁有办法优化一下
数据加载中...
 
   



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

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