小明从2006年1月1日开始,每三天结识一个美女两天结识一个帅哥,编程实现当输入2006年1月1日之后的任意一天,输出小明那天是结识美女还是帅哥(注意润年问题)(C语言)
小明的交际问题不会出现既不认识美女又不认识帅哥的情况,每三天认识一个美女,每两天认识一个帅哥,这就相当于除了0以外的自然数不是奇数就是偶数。从2006-1-1开始计算,2006-1-2认识的是帅哥,2006-1-3认识的就是美女。
#include <stdio.h>
int main(int argc, const char * argv[]) { // 定义二维数组 int year , month ,day ,days, SumDays,leap,count=0; int a[][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}}; //提示输入年月日 printf("请输入2006年1月1日之后的年月日,格式如年-月-日:\n"); // 从键盘输入年月 scanf("%d-%d-%d",&year,&month,&day);
//判断输入的年份是否为闰年,并计算闰年数量 for (int i=0; i<year-2006; i++) { if ((year%4==0&&year%100!=0)||year%400==0) { leap=1; count++; } } leap=0; days=day; //各月天数相加 for(int i=0;i<month;i++){ days+=a[leap]; } //计算总时间天数 SumDays = count*366+(year-count-2006)*355+days; if (SumDays%2==0) { printf("今天小明认识的是一位帅哥!\n"); }else if (SumDays%3==0){ printf("今天小明认识的是一位美女!\n"); }
return 0; }
|