| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 410 人关注过本帖
标题:这个程序后半部分怎么不能执行呢??请高手指点啊
只看楼主 加入收藏
photon1001
Rank: 1
等 级:新手上路
帖 子:19
专家分:3
注 册:2010-9-10
结帖率:40%
收藏
 问题点数:0 回复次数:4 
这个程序后半部分怎么不能执行呢??请高手指点啊
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int days,days1,days2,n,i;
    int year1,year2,month1,month2,date1,date2;
    printf("请输入您的出生年月日:");
    scanf("%d",&year1);
    scanf("%d",&month1);
    scanf("%d",&date1);
    printf("请输入今天的年月日:");
    scanf("%d",&year2);
    scanf("%d",&month2);
    scanf("%d",&date2);
    for(n=year1,days=0;n<year2;n++)
    {
       if(((n%4==0)&&(n%100!=0))||(n%400==0))
       days=days+366;
       else
       days=days+365;
    }
    if(((year1%4==0)&&(year1%100!=0))||(year1%400==0))
       {
           for(i=1,days1=0;i<=12;i++)
        {
           if((i=1)||(i=3)||(i=5)||(i=7)||(i=8)||(i=10)||(i=12))
           days1=days1+31;
           else if((i=4)||(i=6)||(i=9)||(i=11))
           days1=days1+30;
           else
           days1=days1+28;
        }
       }
        else
        {
            for(i=1,days1=0;i<=12;i++)
        {
           if((i=1)||(i=3)||(i=5)||(i=7)||(i=8)||(i=10)||(i=12))
           days1=days1+31;
           else if((i=4)||(i=6)||(i=9)||(i=11))
           days1=days1+30;
           else
           days1=days1+27;
        }
        }
       if(((year2%4==0)&&(year2%100!=0))||(year2%400==0))
   {
           for(i=1,days2=0;i<=12;i++)
        {
           if((i=1)||(i=3)||(i=5)||(i=7)||(i=8)||(i=10)||(i=12))
           days2=days2+31;
           else if((i=4)||(i=6)||(i=9)||(i=11))
           days2=days2+30;
           else
           days2=days2+28;
        }
   }
        else
       {
            for(i=1,days2=0;i<=12;i++)
        {
           if((i=1)||(i=3)||(i=5)||(i=7)||(i=8)||(i=10)||(i=12))
           days2=days2+31;
           else if((i=4)||(i=6)||(i=9)||(i=11))
           days2=days2+30;
           else
           days2=days2+27;
        }
       }
      
   printf("今天是你人生的第%d天",days+days2-days1);
   return 0;


}
搜索更多相关主题的帖子: void 出生年月日 include choice 
2010-09-13 19:55
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
收藏
得分:0 
你指出来 我懒得看了  你直接画个线或变下色

清风拂暮(木)
2010-09-13 20:46
tomywj
Rank: 2
等 级:论坛游民
帖 子:27
专家分:20
注 册:2010-7-20
收藏
得分:0 
后半部分有问题吧, 你把出生年的全部和最后一年的全部天数都加上了 还有你的if语句中的判断应该用i==2而不是i=2
小弟不才,大概改了一下程序如下,应该没错了,请各位不吝赐教:
#include "stdio.h"
void main()
{
    int days,days1=0,days11=0,days2=0,days22=0,n,i;
    int year1,year2,month1,month2,date1,date2;
    printf("请输入您的出生年月日:");
    scanf("%d",&year1);
    scanf("%d",&month1);
    scanf("%d",&date1);
    printf("请输入今天的年月日:");
    scanf("%d",&year2);
    scanf("%d",&month2);
    scanf("%d",&date2);
    for(n=year1+1,days=0;n<year2;n++)
    {
       if(((n%4==0)&&(n%100!=0))||(n%400==0)) //判断闰年 并且累加天数 (year1-year2中间年份的天数)
         days=days+366;
       else
         days=days+365;
    }
   
    if(((year1%4==0)&&(year1%100!=0))||(year1%400==0))
       {
           
           while(++month1<=12)
           {
           i=month1;
           if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))
              {days1=days1+31;
               days11=31-date1;}
           else if((i==4)||(i==6)||(i==9)||(i==11))
              {days1=days1+30;days11=30-date1;}
           else
              {days1=days1+29;days11=29-date1;}
           month1++;
           }
           days1=days1+days11;
       }
    else
        {
          while(++month1<=12)
           {
           i=month1;
           if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))
             {days1=days1+31;days11=31-date1;}
           else if((i=4)||(i=6)||(i=9)||(i=11))
             {days1=days1+30;days11=30-date1;}
           else
             {days1=days1+28;days11=28-date1;}
           }
           days1=days1+days11;
        }
  if(((year2%4==0)&&(year2%100!=0))||(year2%400==0))
   {
           while(--month2>=1)
           {
           i=month2;
           if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))
              days1=days1+31;
           else if((i=4)||(i=6)||(i=9)||(i=11))
              days2=days2+30;
           else
              days2=days2+29;
           }
           days2=days2+date2;
   }
        else
       {
          while(--month2>=1)
           {
           i=month2;
           if((i==1)||(i==3)||(i==5)||(i==7)||(i==8)||(i==10)||(i==12))
             days2=days2+31;
           else if((i==4)||(i==6)||(i==9)||(i==11))
             days2=days2+30;
           else
             days2=days2+28;
           }
           days2=days2+date2;
       }
  
   printf("今天是你人生的第%d天",days+days2+days1);
   getch();
   return 0;


}
2010-09-13 21:12
阿全
Rank: 2
等 级:论坛游民
帖 子:16
专家分:14
注 册:2010-9-8
收藏
得分:0 
拜托,你这个程序我看了半天,我发现你这个程序根本没写完,要能输出就奇了怪了,你的月份和日子都没用上咋能答案,我正改着呢!!!
2010-09-13 21:26
阿全
Rank: 2
等 级:论坛游民
帖 子:16
专家分:14
注 册:2010-9-8
收藏
得分:0 
我用的是相减法,开始用你的原程序继续往下做做出来有问题,后来就用的是这个方法:定1899年12月31日为0,求生日到它的日子,再求今天到他的日子,然后相减,相对来说程序更简单,更易懂。
#include "stdio.h"
#include<stdlib.h>
int main()
{
    int n=0,m=0,i;
    int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    int year1,year2,month1,month2,date1,date2;
    printf("请输入您的出生年月日:");
    scanf("%d",&year1);
    scanf("%d",&month1);
    scanf("%d",&date1);                                                                              
    printf("请输入今天的年月日:");
    scanf("%d",&year2);
    scanf("%d",&month2);
    scanf("%d",&date2);   
    for(i=1900;i<year1;i++)   /*定1899年12月31日为0*/  
    {
    if(((i%4==0)&&(i%100!=0))||(i%400==0))
          n+=366;
    else n+=365;
     }
     for(i=1;i<=12;i++)
     {
      if(((year1%4==0)&&(year1%100!=0))||(year1%400==0))
      {
        if(i==month1)                     
    {
        for(i=1;i<=month1-1;i++)
        n=n+b[i];
        }
        }
      if((year1%4!=0)||(year1%100==0))
      {
     if(i==month1)   
    {
       for(i=1;i<=month1-1;i++)
        n=n+a[i];
        }
        }
        }
        n=n+date1;
  for(i=1900;i<year2;i++)
    {
    if(((i%4==0)&&(i%100!=0))||(i%400==0))
          m+=366;
    else m+=365;
     }
     for(i=1;i<=12;i++)
     {
      if(((year2%4==0)&&(year2%100!=0))||(year2%400==0))
      {
        if(i==month2)                     
    {
        for(i=1;i<=month2-1;i++)
        m=m+b[i];
        }
        }
      if((year2%4!=0)||(year2%100==0))
      {
     if(i==month2)   
    {
       for(i=1;i<=month2-1;i++)
        m=m+a[i];
        }
        }
        }
        m=m+date2;
        printf("今天是你人生的第%d天",m-n);
       system("pause");
        return 0;
}
2010-09-15 20:03
快速回复:这个程序后半部分怎么不能执行呢??请高手指点啊
数据加载中...
 
   



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

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