计算机c语言题目,求大神帮忙

 我来答
lexou123
2014-01-24 · TA获得超过543个赞
知道小有建树答主
回答量:279
采纳率:100%
帮助的人:211万
展开全部
 
# include <stdio.h> 
#include <stdlib.h>
int yue(int m,int n)     // 计算,某年的某月的时间天数
{
 int x=0;
 switch((m+1)%14)
  {
   case 13:x=31;break;
   case 12:x=30;break;
   case 11:x=31;break;
   case 10:x=30;break;
   case 9: x=31;break;
   case 8: x=31;break;
   case 7: x=30;break;
   case 6: x=31;break;
   case 5: x=30;break;
   case 4: x=31;break;
   case 3:{x=28;if((n%4==0)&&(n%100!=0)||(n%400==0))x++;}break;
   case 2:x=31; break;
   default:x=0;
   }
   return x;
 }
int nian(int n)                    // 计算某年的天数
 {
  int i;
  int x=0;
  for(i=1;i<13;i++)
      x+=yue(i,n);
  return x;
 }
int Cnian(int sn,int m)            // 计算某年后 m 年的天数
{
 int i;
 int x=0;
 for(i=0;i<m;i++)
     x+=nian(sn+i);
 return x;
}
int Wnian(int n,int y,int r)       // 出生那年的剩余天数。
 {
  int i;
  int ye = 0;
  for(i=1;i<y;i++)
    ye+=yue(i,n);
  return  ye+r;                    // 出生年前。
 }
int Rnian(int n,int y,int r)       // 出生那年的剩余天数。
 {
  int i; 
  return nian(n)-Wnian(n,y,r);   // 出生第一天 计算为1天。
 }
int ri(int t,int n)                // 计算,某年的某月的时间天数
{
 int x=t;
 switch((t/31+1))
  {
   //case 13:x-=31;
   case 12:x-=30; 
   case 11:x-=31; 
   case 10:x-=30; 
   case 9: x-=31; 
   case 8: x-=31;  
   case 7: x-=30; 
   case 6: x-=31; 
   case 5: x-=30; 
   case 4: x-=31;  
   case 3:{x-=28;if((n%4==0)&&(n%100!=0)||(n%400==0))x--;} 
   case 2: x-=31;
   default: x;
   }
   return x;
 }
main ()
{
int yy,mm,dd;
//yy=1975,mm=7,dd=15;
int tt= 10000;
int i,j,n,k,l;
int y=0,m=0,d=0;
/////////////////////////////////
FILE *in,*out; 
  in = fopen("birthday.in", "r+");
  out = fopen("birthday.out", "w+");
  fscanf(in,"%d %d %d", &yy,&mm,&dd);
  fclose(in);
  printf("%d %d %d\n",yy,mm,dd);
////////////////////////////////
 y = tt/366+yy;  // 推算出年
 n = Rnian(yy,mm,dd);
 if(tt>n)
 {
   j=tt-n;
   k=j/366;
   l=Cnian(yy+1,k);
   j-=l;
   d = ri(j,y);
   m = j/31+1;
   printf("%d-%02d-%02d\n",y,m,d );
   fprintf(out,"%d-%d-%d",y,m,d);
   fclose(out);
   getch();
 }
 else
  {
   y = yy; 
   i = yue(mm,yy);
   j = i-dd;
   if(j>tt)
   {
    printf("%d-%02d-%02d\n",y,mm,d=dd+tt);
    fprintf(out,"%d-%d-%d",y,m,d);
    fclose(out);
    }
   else
    {
     j=(tt-j);
     k=j/31+1;
     m=mm+k;
     l=0;
     for(i=mm+1;i<k;i++)
      l+=yue(i,yy);
      d=j-l;
     printf("%d-%02d-%02d\n",y,m,d );
     fprintf(out,"%d-%d-%d",y,m,d);
     fclose(out); 
    }
   getch();
  }
}
油油的发亮
2014-01-24 · 超过12用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:15.8万
展开全部
# include <stdio.h>
#include <stdlib.h>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

int yue(int m,int n) // 计算,某年的某月的时间天数
{
int x=0;
switch((m+1)%14)
{
case 13:x=31;break;
case 12:x=30;break;
case 11:x=31;break;
case 10:x=30;break;
case 9: x=31;break;
case 8: x=31;break;
case 7: x=30;break;
case 6: x=31;break;
case 5: x=30;break;
case 4: x=31;break;
case 3:{x=28;if((n%4==0)&&(n%100!=0)||(n%400==0))x++;}break;
case 2:x=31; break;
default:x=0;
}
return x;
}
int nian(int n) // 计算某年的天数
{
int i;
int x=0;
for(i=1;i<13;i++)
x+=yue(i,n);
return x;
}
int Cnian(int sn,int m) // 计算某年后 m 年的天数
{
int i;
int x=0;
for(i=0;i<m;i++)
x+=nian(sn+i);
return x;
}

1
2
3
4
5
6
7
8

int Wnian(int n,int y,int r) // 出生那年的剩余天数。
{
int i;
int ye = 0;
for(i=1;i<y;i++)
ye+=yue(i,n);
return ye+r; // 出生年前。
}

1
2
3
4
5

int Rnian(int n,int y,int r) // 出生那年的剩余天数。
{
int i;
return nian(n)-Wnian(n,y,r); // 出生第一天 计算为1天。
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

int ri(int t,int n) // 计算,某年的某月的时间天数
{
int x=t;
switch((t/31+1))
{
//case 13:x-=31;
case 12:x-=30;
case 11:x-=31;
case 10:x-=30;
case 9: x-=31;
case 8: x-=31;
case 7: x-=30;
case 6: x-=31;
case 5: x-=30;
case 4: x-=31;
case 3:{x-=28;if((n%4==0)&&(n%100!=0)||(n%400==0))x--;}
case 2: x-=31;
default: x;
}
return x;
}
main ()
{
int yy,mm,dd;
//yy=1975,mm=7,dd=15;
int tt= 10000;
int i,j,n,k,l;
int y=0,m=0,d=0;
/////////////////////////////////
FILE *in,*out;
in = fopen("birthday.in", "r+");
out = fopen("birthday.out", "w+");
fscanf(in,"%d %d %d", &yy,&mm,&dd);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

fclose(in);
printf("%d %d %d\n",yy,mm,dd);
////////////////////////////////
y = tt/366+yy; // 推算出年
n = Rnian(yy,mm,dd);
if(tt>n)
{
j=tt-n;
k=j/366;
l=Cnian(yy+1,k);
j-=l;
d = ri(j,y);
m = j/31+1;
printf("%d-%02d-%02d\n",y,m,d );
fprintf(out,"%d-%d-%d",y,m,d);
fclose(out);
getch();
}
else
{
y = yy;
i = yue(mm,yy);
j = i-dd;
if(j>tt)
{
printf("%d-%02d-%02d\n",y,mm,d=dd+tt);
fprintf(out,"%d-%d-%d",y,m,d);
fclose(out);
}
else
{
j=(tt-j);
k=j/31+1;
m=mm+k;
l=0;
for(i=mm+1;i<k;i++)
l+=yue(i,yy);
d=j-l;
printf("%d-%02d-%02d\n",y,m,d );
fprintf(out,"%d-%d-%d",y,m,d);
fclose(out);
}
getch();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式