小明从2006年1月1日开始,每三天结识一个美女两天结识一个帅哥,编程实现当输入2006年1月1日之后的任意一天,输出小明那天是结识美女还是帅哥(注意润年问题)
看看下面两个方法哪个错了,错在哪里?- #include <stdio.h>
- typedef struct {
- int year;
- int month;
- int day;
- } DATE;
- int main(int argc, const char * argv[]) {
- int a[12]={31,29,31,30,31,30,31,31,30,31,30,31};
- int b[12]={31,28,31,30,31,30,31,31,30,31,30,31};
- int falt=1;
- while (falt) {
- // 定义日期
- DATE date;
- // 提示用户输入日期 并接收日期
- printf("请输入年:\n");
- scanf("%d",&date.year);
- printf("请输入月:\n");
- scanf("%d",&date.month);
- printf("请输入日:\n");
- scanf("%d",&date.day);
- // 对日期进行计算得到相差天数
- int count1 = 0; // 记录闰年数
- int count2 = 0; // 记录非闰年数
- for (int i=2006; i<date.year; i++) {
- if((i%4==0&&i%100!=0)|| i%400==0){
- count1++;
- }
- }
- count2 = date.year - 2006 - count1;
- int count = 0;
- count = count1 * 366 + count2 * 365; // 记录总天数
- if(((date.year)%4==0&&(date.year)%100!=0)|| (date.year)%400==0){
- for (int i=0; i<date.month-1; i++) {
- count += a[i];
- }
- }else {
- for (int i=0; i<date.month-1; i++) {
- count += b[i];
- }
- }
- count += date.day;
- // 天数 对2/3进行取余
- printf("小明熬了%d天\n", count);
- if (count % 2 == 0) {
- printf("卧槽,有帅哥!\n");
- }
- if (count % 3 == 0) {
- printf("MLGB,大美女!\n");
- }
- if (count%2&&count%3) {
- printf("尽情的开撸吧...\n");
- }
- printf("请按:0.退出 1.继续\n");
- scanf("%d",&falt);
- }
-
- return 0;
- }
复制代码- #include <stdio.h>
- int getYears(int year);
- int getMonth(int year,int month);
- int getAllDay(int year, int month, int day);
- int main(int argc, const char * argv[]) {
-
- int year,month,day;
- printf("请输入一个日期 年-月-日 来看看小明现在有没有精尽人亡.\n");
- scanf("%d-%d-%d",&year,&month,&day);
-
- int all_day = getAllDay(year, month, day);
-
- //NSLog(@"%d",all_day);
- printf("%d\n",all_day);
-
- //判断小明的行为
- if (all_day % 2 == 0) {
- printf("小明现在在泡妞呢,叔叔咱们不约!\n");
- }
- if (all_day % 3 == 0) {
- printf("小明现在在搞基呢,你要不要一起来!\n");
- }
- if (all_day % 2 == 0 && all_day % 3 == 0) {
- printf("小明现在在3P呢,不带外人,你洗洗睡吧!\n");
- }
- if (all_day % 2 != 0 && all_day % 3 != 0) {
- printf("小明现在自己在家撸着呢....\n");
- }
- return 0;
- }
- //获取闰年和平年各多少天的函数
- int getYears(int year)
- {
- //如果是闰年返回366天
- if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
- return 366;
- }
- else {//否则返回365天
- return 365;
- }
- }
- //获取一共几个月,合计多少天.
- int getMonth(int year,int month)
- {
- //定义润月
- int double_array[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
- //定义平月
- int arrar[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
-
- int day_month = 0;
-
- //闰月天数
- if ((year % 4 == 0 && year % 100 != 0 )||year % 400 == 0) {
- for (int i = 1; i < month; i++) {
- day_month += double_array[i-1];
- }
- }
- else {//平月天数
- for(int i = 1; i < month; i++) {
- day_month += arrar[i-1];
- }
- }
-
- return day_month;
-
- }
- //获取总天数
- int getAllDay(int year, int month, int day)
- {
- int allDay = 0;
- int day_years = 0;
- int day_month = 0;
-
- //计算总年数
- for (int i = 2006; i < year; i++) {
- day_years += getYears(year);
- }
-
- //计算月份总天数
- day_month = getMonth(year, month);
-
- //计算总天数
- allDay = day_years + day_month + day;
-
- // NSLog(@"%d",allDay);
-
-
- return allDay;
-
-
- }
复制代码
|
|