黑马程序员技术交流社区
标题: 基础测试之小明的交际问题 [打印本页]
作者: cherrycool 时间: 2015-11-9 13:06
标题: 基础测试之小明的交际问题
小明从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;
}
作者: arhui 时间: 2015-11-9 15:53
666666666666666
作者: cherrycool 时间: 2015-11-25 08:54
在论坛里面看到别人有写过,所以自己也用自己的思路写一下,可以开阔一下思路,对自学基础很有帮助
作者: lujia1010 时间: 2015-11-25 10:13
思路清晰,不错
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |