程序填空:题目:大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
根据题目,补全程序。
/*高斯日记*/
#include
int main()
{
int year=1777,month=4,day=30,i;
int a[ ]={0,31,28,31,30,31,30,31,31,30,31,30,31};
for(i=1;i<5343;i++)
{
if(month==2&&year%4==0&&year%100!=0||year%400==0)
a[2]=29;
else
a[2]=28;
day= 填空 ;
if(day==1)
{
month=month%12+1;
if(month==1)
year++;
}
}
printf("%d-%d-%d\n",year,month,day);
return 0;
}
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210
后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?
高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113
请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21
根据题目,补全程序。
/*高斯日记*/
#include
int main()
{
int year=1777,month=4,day=30,i;
int a[ ]={0,31,28,31,30,31,30,31,31,30,31,30,31};
for(i=1;i<5343;i++)
{
if(month==2&&year%4==0&&year%100!=0||year%400==0)
a[2]=29;
else
a[2]=28;
day= 填空 ;
if(day==1)
{
month=month%12+1;
if(month==1)
year++;
}
}
printf("%d-%d-%d\n",year,month,day);
return 0;
}
举一反三
- 类MyDate定义如下: class MyDate{ int year=2019, month=5, day=30; { year=2017; month=1; day = 1; } MyDate(int year, int month, int day){this.year=year; this.month=month; this.day=day;} MyData(){this(2018,12,31);} }; 执行语句 MyDate adate=new MyDate(); adate.year、adate.month、adate.day的值为_____________。 A: 2019 5 30 B: 2017 1 1 C: 2018 12 31 D: 不确定不确定不确定
- A normal year has 12 lunar months with about _____ days in each month, and during the leap year an extra month is added.( )。 A: 29 B: 28 C: 31 D: 30
- 程序:class Birthday{int year;int month;int day;public Birthday(int year,int month,int day){year = year; month = month; day = day;}public static void main(String[] args){Birthday birth = new Birthday(1980,10,22); System.out.println(year);}}程序运行后的输出是哪项? A: 1980 B: 10 C: 22 D: 0 E: 编译出错
- 输入某年某年某月某日,判断这一天是这一年的第几天?思路:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天:year = int(input(‘year:’))month = int(input(‘month:’))day = int(input(‘day:’))months = [0,31,59,90,120,151,181,2 A: (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)) B: (year % 400 = 0) or ((year % 4 = 0) and (year % 100 != 0)) C: (year % 400 == 0) and ((year % 4 == 0) and (year % 100 != 0)) D: (year % 400 == 0) and ((year % 4 == 0) or (year % 100 != 0))
- 中国大学MOOC: 下面程序中子函数MonthDay()的功能是将某年的第几天转换为某月某日。程序的运行结果如下:Please enter year, yearDay:2014,100↙month = 4, day = 10按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include void MonthDay(int year, int yearDay, int *pMonth, int *pDay);int 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}};int main() { int year, month, day, yearDay; printf(Please enter year, yearDay:); scanf(%d,%d, &year, &yearDay); _________________; printf(month = %d, day = %d , month, day); return 0; }/* 函数功能:对给定的某一年的第几天,计算它是这一年的第几月第几日 */void MonthDay(int year, int yearDay, int *pMonth, int *pDay){ int i, leap; leap = _________________________; for (i=1; yearDay>dayTab[leap][i]; i++) { yearDay = ______________________; } ______________; /* 将计算出的月份值赋值给pMonth所指向的变量 */ *pDay = yearDay; /* 将计算出的日号赋值给pDay所指向的变量 */}