注册 登录
编程论坛 C++教室

判断年份是闰年还是平年-----看看再那错了!!!!

数字帝国_boy 发布于 2013-10-22 22:08, 1142 次点击
#include <stdio.h>
void main()
{
    int year;
    int month;
    int day;
    int days;
    int i,g;
    int month_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    printf("输入年月日:\n");
    scanf("%4d %02d %02d",&year,&month,&day);
    days=day;
    if(year%400==0||year%4==0&&year%100!=0)//
    if(g)
        month_day[2]={29};
    for (i=1;i<month;i++)
        days=days+month+month_day[i];
    printf("%4d/%02d/%02d是本年的第%d天\n",year,month,day,days);
}


12 回复
#2
数字帝国_boy2013-10-22 22:09
``````````
#3
数字帝国_boy2013-10-22 22:25
``````````
#4
peach54602013-10-23 08:56
if(year%400==0||year%4==0&&year%100!=0)//
    if(g)
        month_day[2]={29};

g哪来的?
#5
数字帝国_boy2013-10-28 22:35
回复 4楼 peach5460
初始化g=0!
#6
数字帝国_boy2013-10-28 22:35
回复 5楼 数字帝国_boy
在全局定义g的值为0!
#7
nba1990442013-10-29 12:38
全局变量是在所有函数外的,包括主函数,你那里的g能为0吗?可以用个输出语句看看,而且,你if(g),你的g根本没有哪里复制,就算是0,那么这个条件永远不成立!
#8
苑天尤2013-10-29 13:18
#include <stdio.h>
 void main()
 {
     int year;
     int month;
     int day;
     int days;
     int i,g;
     int month_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
     printf("输入年月日:\n");
     scanf("%4d %02d %02d",&year,&month,&day);
     days=day;
     if(year%400==0||year%4==0&&year%100!=0)//
     if(year%400==0||year%4==0&&year%100!=0)
     {
       month_day[2]=29;
     }
     for (i=1;i<month;i++)
         days=days+month+month_day[i];
     printf("%4d/%02d/%02d是本年的第%d天\n",year,month,day,days);
 }
#9
suchengjie2013-10-30 10:41
days=days+month+month_day[i];总感觉这里怪怪的
#10
左手拉一只猫2013-10-30 16:08
Bug1:你这程序里面的变量是要用来做什么的
      Bug2: days=days+month+month_day[i];这个表达式为什么还要加上月份的month,我们计算第几天貌似不加月份的吧
      Bug3:month_day[2]={29};数组元素不能这么赋值的吧。。。。
我怀疑楼主是代码不是自己写的,是哪里找来的。。。。
发个测试过可以的(在你上面改过来的)
程序代码:
#include <stdio.h>
void main()
{
    int year;
    int month;
    int day;
    int days;
    int i;
    int month_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    printf("输入年月日:\n");
    scanf("%4d %02d %02d",&year,&month,&day);
    days=day;
    if(year%400==0||year%4==0&&year%100!=0)
        month_day[2]=29;
    for (i=1;i<month;i++)
        days=days+month_day[i];
    printf("%4d/%02d/%02d是本年的第%d天\n",year,month,day,days);
}

骚年,我只能帮你到这里了。。。
#11
a1902054602013-10-30 21:29
看不懂了,你只是要看是平年还是闰年,为什么还要输入月和日呢?
#12
数字帝国_boy2013-11-03 22:00
回复 7楼 nba199044
thank you!
#13
数字帝国_boy2013-11-03 22:05
回复 10楼 左手拉一只猫
这个是我大一写的!我整理下看到运行bug!现在在学数字逻辑,还有数据结构!c\c++,现在在温习呢!!代码是自己按数组的知识写的!!
1