样例输入
2012 4 9 91
2013 1 1 364
样例输出
2012.7.9
2013.12.31
想把一下代码弄成以上的格式
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int y,m,d,N,a;
scanf("%d %d %d",&y,&m,&d);
scanf("%d",&N);
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
{
a=31-d;
}else if(m==4||m==6||m==9||m==11)
{
a=30-d;
}else if(m==2)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
a=29-d;
}else
{
a=28-d;
}
}
if(N<=a)
{
printf("%d %d %d",y,m,d+N);
}else
{
N=N-a;
m++;
}
for(;N>0;)
{
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
{
N=N-31;
m++;
}else if(m==4||m==6||m==9||m==11)
{
N=N-30;
m++;
}else if(m==2)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
N=N-29;m++;
}else
{
N-=28;
m++;
}
}else if(m==13)
{
y++;
N-=31;
m=2;
}
}
m--;
if(m==1)
{
printf("%d.%d.%d\n",y,m=12,N+31);
}else if(m==3||m==5||m==7||m==8||m==10||m==12)
{
printf("%d.%d.%d\n",y,m,N+31);
}else if(m==4||m==6||m==9||m==11)
{
printf("%d.%d.%d\n",y,m,N+30);
}else if(m==2)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
printf("%d.%d.%d\n",y,m,N+29);
}else
{
printf("%d.%d.%d\n",y,m,N+28);
}
}
system("PAUSE");
return 0;
}
重写的话当然可以写得简单些,改一下的话,如下较方便:
#include "stdio.h"你对照看,可续问。
题目描述
我们经常要计算,从今天往后N天之后是哪一天(哪年哪月哪日)。现在我们就可以编写一个程序,推算指定日期之后的第N天是什么日期。
输入
输入有多组。每组测试用例有一行,包括四个整数,分别表示年,月,日和第N天。
输出
对于每组测试用例,输入由一行组成,表示(年月日+N天后的)的年.月.日
样例输入
2012 4 9 91
2013 1 1 364
样例输出
2012.7.9
2013.12.31
你说那么多啥意思?给你改的代码难道不是这样的吗?你根本就没有试吧?这是执行结果:
自己看……
不知道你在问什么,那就发一副全图片:
作业要求是 输入
2012 4 9 91
2013 1 1 364
然后输出 他要的答案 多余的不行 这是机器批阅的作业
多余的不要你删除不就得了?另,既然要求多组,既不说多组怎么结束,也不说先输入组数n,你说怎么弄?我只能认为是先输入组数了。如果只有两组,那就把主函数改如下就可以了:
int main(int argc,char *argv[]){但这觉得就不叫什么程序了……