计算机c语言题目,求大神帮忙
2个回答
展开全部
# 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();
}
}
展开全部
# 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();
}
}
#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();
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询