A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© legendary   /  2014-7-18 23:49  /  4620 人查看  /  27 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

FTD 中级黑马 2015-10-11 20:16:42
21#
这题的精髓在于年月日的计算,在计算某年某月有多少天的基础上又进行了升华,我觉得是一道很值得思考的题!学到了!
回复 使用道具 举报
加上了判断日期是否合理问题
回复 使用道具 举报
好厉害~~~~~
回复 使用道具 举报
//小明从2006年1月1日开始,每三天结识一个美女两天结识一个帅哥,编程实现当输入2006年1月1日之后的任意一天,输出小明那天是结识美女还是帅哥(注意润年问题)
#include <stdio.h>

int runOrPing(int Y){
   
    if ((Y%400==0)||((Y%4==0)&&(Y%100!=0)))
        
        {
            return 1;
        }else  return 0;
   
}
        
int dayOfYear(int x){
   
    int count=0;
    for(int i=2006;i<=x;i++)
    {
        if(runOrPing(i)){
            count++;
    }
        
        }
        
    return (x-count)*28+count*29+(x-2006)*337;
   
    }
        
int dayOfMonth(int x, int y)
   
        {
            char runMonth[]={31,29,31,30,31,30,31,31,30,31,30,31};
            char pingMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};
            int sum=0;
            if(runOrPing(x)) {
               
                for (int i=0;i<y-1;i++){
                    sum=sum+runMonth[i];
                    
                }
               
            }else{
                for (int i=0;i<y-1;i++){
                    sum=sum+pingMonth[i];
}
            }
            
            return sum;
        }
void result(int sumDay){
            if(sumDay%5<=3)
            {
                printf("今天小明见到的是美女!\n");
            }else
                printf("今天小明见到的是帅哥!\n");
        }
        

int main(){
   
    printf("请输入年、月、日,并以逗号隔开,形式如:“2014,3,23”\n");
    int x,y,z;
    scanf("%d,%d,%d",&x,&y,&z);
   
   int daySum=dayOfYear(x)+dayOfMonth(x, y)+z;
    result(daySum);
   
    return 0;
}
回复 使用道具 举报
dui 还有BUg
回复 使用道具 举报
加油 加油
回复 使用道具 举报
厉害!!!!!!!!!!!
回复 使用道具 举报
我也抽到了这道题,好好看看思考下,再来看你们的讲解
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马