鱼C论坛

 找回密码
 立即注册
查看: 4718|回复: 8

下面是一段输入某年某月某日,输出这一天是这一年中的第几天的代码,请问哪里错了

[复制链接]
发表于 2013-3-27 09:40:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
void main()
{
int a,b,c ,d;
printf("Please input xxx year xxx month xxx day\n");
if(a%4==0 && a%100==0 && a%400==0)
{
switch(b)
{
case 1:printf("d=%d\n",c);break;
case 2:printf("d=%d\n",c+31);break;
case 3:printf("d=%d\n",c+60);break;
case 4:printf("d=%d\n",c+91);break;
case 5:printf("d=%d\n",c+121);break;
case 6:printf("d=%d\n",c+152);break;
case 7:printf("d=%d\n",c+182);break;
case 8:printf("d=%d\n",c+213);break;
case 9:printf("d=%d\n",c+244);break;
case 10:printf("d=%d\n",c+274);break;
case 11:printf("d=%d\n",c+305);break;
case 12:printf("d=%d\n",c+335);break;
default:printf("error\n");
}
}
else if
switch(b)
{
case 1:printf("d=%d\n",c);break;
case 2:printf("d=%d\n",c+31);break;
case 3:printf("d=%d\n",c+59);break;
case 4:printf("d=%d\n",c+90);break;
case 5:printf("d=%d\n",c+120);break;
case 6:printf("d=%d\n",c+151);break;
case 7:printf("d=%d\n",c+181);break;
case 8:printf("d=%d\n",c+212);break;
case 9:printf("d=%d\n",c+243);break;
case 10:printf("d=%d\n",c+273);break;
case 11:printf("d=%d\n",c+304);break;
case 12:printf("d=%d\n",c+334);break;
default:printf("error\n");
}
}

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-27 09:44:28 | 显示全部楼层
菜鸟过来看看学习一下
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-27 10:59:44 | 显示全部楼层
没试着运行,不过就看到一点,if(a%4==0 && a%100==0 && a%400==0)改成if(a%4==0 && a%100==0 || a%400==0)
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-27 13:17:13 | 显示全部楼层
if(a%4==0 && a%100==0 && a%400==0)
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-29 09:59:14 | 显示全部楼层
没有scanf(...); a, b, c, d没赋值
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-31 22:32:38 | 显示全部楼层
应该是:
if( (a%4==0 && a%100!=0 )&& a%400==0)
小甲鱼最新课程 -> https://ilovefishc.com
头像被屏蔽
发表于 2013-3-31 22:46:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-1 12:10:00 | 显示全部楼层
路过,顶一下
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-12 04:43:01 | 显示全部楼层
本帖最后由 Kinkairy 于 2013-4-12 05:00 编辑

发个自己写的,高手帮忙看看有没有逻辑问题...

#include <stdio.h>
void main (void)
{
        int y, m, n, a, c;
        printf ("输入年月日: ");
        scanf ("%d %d %d", &y, &m, &n);
        if (m>12||m<1||n>31||n<1)
        {
                c=1;
        }
        if ((m<8&&m%2==0||m>8&&m%2!=0)&&n>30)
        {
                c=2;
        }
        if (m==2&&n>28)
        {
                c=3;
        }
        switch (c)
        {
                case 1:
                        printf ("月份日期不能小于1\n月份不能大于12\n日期不能大于31\n");
                        break;
                case 2:
                        printf ("%d月日期不能大于30\n",m);
                        break;
                case 3:
                        printf ("2月日期不能大于28\n",m);
                        break;
                default:
                        a=m<3?(m-1)*30+n+m/2:(m-1)*30+n+m/2-2;
                        if (y%400==0||(y%4==0&&y%100!=0))
                        {
                                if (m>3)
                                {
                                        a=a++;
                                }
                                printf ("%d年(闰)%d月%d日,第%d天\n", y, m, n, a);
                        }
                        else
                        {
                                printf ("%d年%d月%d日,第%d天\n", y, m, n, a);
                        }
        }
}
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-5 03:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表