c语言编程:编写程序,输入某年某月某日,判断这一天是这一年的第几天?麻烦帮忙解解呗
3个回答
展开全部
#include <stdio.h>
#include<Windows.h>
void main()
{
int y,m,d,sum1=0,sum2=0,i=0,sumok1=0,sumok2=0;
int a1[]={31,29,31,30,31,30,31,31,30,31,30,31};
int a2[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("输入年月日(用逗号隔开):\n");
scanf("%d,%d,%d",&y,&m,&d);
if (y%4==0&&y%100!=0||y%400==0) /*闰年,2月29天*/
{
while (i<m-1)
{
sum1=a1[i]+sum1;
i++;
}
sumok1=sum1+d;
printf("这是该年的第%d天\n",sumok1);
}
else
{
while (i<m-1)
{
sum2=a2[i]+sum2;
i++;
}
sumok2=sum2+d;
printf("这是该年的第%d天\n",sumok2);
}
system("pause");
}vs2010下运行成功,如图。 我的另一个回答。
#include<Windows.h>
void main()
{
int y,m,d,sum1=0,sum2=0,i=0,sumok1=0,sumok2=0;
int a1[]={31,29,31,30,31,30,31,31,30,31,30,31};
int a2[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("输入年月日(用逗号隔开):\n");
scanf("%d,%d,%d",&y,&m,&d);
if (y%4==0&&y%100!=0||y%400==0) /*闰年,2月29天*/
{
while (i<m-1)
{
sum1=a1[i]+sum1;
i++;
}
sumok1=sum1+d;
printf("这是该年的第%d天\n",sumok1);
}
else
{
while (i<m-1)
{
sum2=a2[i]+sum2;
i++;
}
sumok2=sum2+d;
printf("这是该年的第%d天\n",sumok2);
}
system("pause");
}vs2010下运行成功,如图。 我的另一个回答。
参考资料: http://zhidao.baidu.com/question/422692355.html?oldq=1
展开全部
很简单
1.首先计算本月之前一共有多少天
2.计算本月至今有多少天
3.如果是闰年,且计算的月份超过了2月,则再多加1天
我没有判断输入的合法性,比如2012 2 30这些数据没有进行判断。你可以自己进行一下合法性的判断。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int mon[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30,31, 30, 31};
int i, year, month, day, sum;
while(scanf("%d %d %d", &year, &month, &day)==3)
{
sum=0;
//计算本月之前一共有多少天
for(i=0; i<month-1; i++)
{
sum += mon[i];
}
//加上本月到今天的天数
sum += day;
//如果是闰年,且计算的月份大于等于3,则多加1天
if(((year%4==0)||(year%100==0 && year%400!=0)) && month>=3)
{
sum++;
}
printf("%d\n", sum);
}
return 0;
}
1.首先计算本月之前一共有多少天
2.计算本月至今有多少天
3.如果是闰年,且计算的月份超过了2月,则再多加1天
我没有判断输入的合法性,比如2012 2 30这些数据没有进行判断。你可以自己进行一下合法性的判断。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int mon[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30,31, 30, 31};
int i, year, month, day, sum;
while(scanf("%d %d %d", &year, &month, &day)==3)
{
sum=0;
//计算本月之前一共有多少天
for(i=0; i<month-1; i++)
{
sum += mon[i];
}
//加上本月到今天的天数
sum += day;
//如果是闰年,且计算的月份大于等于3,则多加1天
if(((year%4==0)||(year%100==0 && year%400!=0)) && month>=3)
{
sum++;
}
printf("%d\n", sum);
}
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>//c language
int LeapYear(int year)
{
if(year%400==0)
return 29;
else
if(year%4==0)
return 29;
else
return 28;
}
void main()
{
int year=2011,month=5,day=12,n=0;
scanf("%d%d%d",&year,&month,&day);
switch(month-1)
{
case 11:n+=30;
case 10:n+=31;
case 9:n+=30;
case 8:n+=31;
case 7:n+=31;
case 6:n+=30;
case 5:n+=31;
case 4:n+=30;
case 3:n+=31;
case 2:n+=LeapYear(year);
case 1:n+=31;
}
n+=day;
printf("%d\n",n);
}
int LeapYear(int year)
{
if(year%400==0)
return 29;
else
if(year%4==0)
return 29;
else
return 28;
}
void main()
{
int year=2011,month=5,day=12,n=0;
scanf("%d%d%d",&year,&month,&day);
switch(month-1)
{
case 11:n+=30;
case 10:n+=31;
case 9:n+=30;
case 8:n+=31;
case 7:n+=31;
case 6:n+=30;
case 5:n+=31;
case 4:n+=30;
case 3:n+=31;
case 2:n+=LeapYear(year);
case 1:n+=31;
}
n+=day;
printf("%d\n",n);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询