首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求指导,编程

2012-04-15 
求指导,求一个编程。题目:输入年月日,输出该天是该年第几天.最好用初学者会的语言编写,先感谢各位啦,谢谢![

求指导,求一个编程。
题目:输入年月日,输出该天是该年第几天.
  最好用初学者会的语言编写,先感谢各位啦,谢谢!

[解决办法]
用不着这么长的switch,利用数组就能大幅度简化它。

C/C++ code
#include<stdio.h>main(){    int year,month,days;    int i,d,s;    int monthdays[]={31,28,31,30,31,30,31,31,30,31,30,31};    printf("Please input the numbers year,month,day:\n");    scanf("%d%d%d",&year,&month,&days);    s=0;    for(i=1;i<month;i++)    {        s+=monthdays[i-1];        if(i==2&&((year%4==0)&&(year%100!=0)||(year%400==0)))   //  这里的条件是百年不润            s++;    }    printf("%d年%d月%d日是这年的%d天\n",year,month,days,s+days);}
[解决办法]
探讨

用不着这么长的switch,利用数组就能大幅度简化它。
C/C++ code
#include<stdio.h>
main()
{
int year,month,days;
int i,d,s;
int monthdays[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("Please input the num……

[解决办法]
C/C++ code
#include <stdlib.h>    #include <stdio.h>static char daytab[2][13] = {    {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},    {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};/* day_of_year: set day of year from month & day */int day_of_year(int year, int month, int day){    int i, leap;    leap = year%4 == 0 && year%100 != 0 || year%400 == 0;    for (i = 1; i < month; i++)        day += daytab[leap][i];    return day;}/* month_day: set month, day from day of year */void month_day(int year, int yearday, int *pmonth, int *pday){    int i, leap;    leap = year%4 == 0 && year%100 != 0 || year%400 == 0;    for (i = 1; yearday > daytab[leap][i]; i++)        yearday -= daytab[leap][i];    *pmonth = i;    *pday = yearday;}int main(){    int m, d;    month_day(1988, 60, &m, &d);    printf("%d month %d date\n", m, d);    system("pause");}
[解决办法]
#include<stdio.h>

int main()
{
int y, m, d;
int a[13] = {0,31,0,31,30,31,30,31,31,30,31,30,31};

while( scanf("%d%d%d",&y,&m,&d)==3 )
{
int i, num;

a[2] = y % ( y % 100 ? 4 : 400 ) ? 28 : 29;
if ( d<1 || d>a[m] || m<1 || m>12 )
{
printf("输入错误!\n请重新输入日期:\n\n");
}
else 
{
for( i=1, num=0; i<m; i++ )
{
num += a[i];
}
num += d; //这一年的第几天
printf("%d\n",num);
}
}

return 0;
}[code=C/C++][/code]

热点排行