C语言基础—小实例:三天打渔两天晒网
2015-04-10 13:18
267 查看
——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
// 小明从2006年1月1日开始,每三天结识一个美女两天结识一个帅哥 // 当输入2006年1月1日之后的任意一天,输出小明那天是结识美女还是帅哥 #include <stdio.h> int isleapyear(int); // 声明子函数,判断是否为润年。 int main() { int year, month, day, days=0; // 定义用到的变量。 printf("请依次输入2006年1月1日之后的年份、月份、和日期\n"); scanf("%d%d%d",&year,&month, &day); // 输入年月日。 int mondays[]={31,28,31,30,31,30,31,31,30,31,30,31}; // 将各月日期数放在数组,二月暂定28天。 int nyear=year-2006; // 得到年数。 for( int i=0; i<=nyear; i++) // 遍历每一年。 { if(isleapyear(2006+i) && i!=nyear) // 判断每一年是润年还是平年。 days=days+366; // 润年将总天数加上366天。 else if( (!isleapyear(2006+i)) && i!=nyear ) days=days+365; // 平年将总天数加上365天。 else if(i==nyear) // 判断是否是最后一年。 { mondays[1]= isleapyear(2006+i) ? 29: 28 ; // 判断最后一年是润年还是平年。 for (int j=0 ; j<month-1; j++) days=days+mondays[j]; // 将最后一年每月天数累加。 days=days+day; // 将最后一年的天数记在总天数内。 } } printf("总天数days=%d\n",days); // 输出总天数。 int sex=days % (3+2); // 取总天数除以5的余数。 switch (sex) // 对余数进行判断。 { case 1: case 2: case 3: printf("%d年%d月%d日,小明结识的是美眉\n", year, month, day); // 如果是前三天,则结识美女。 break; case 4: case 0: printf("%d年%d月%d日,小明结识的是帅锅\n",year, month, day); // 如果是后两天,则结识帅哥。 break; } return 0; } int isleapyear(int year) // 定义判断是否是润年的子函数。 { if((year%4==0 && year %100 !=0) || year %400==0) // 能被四整除且不能被100整除,或者能够被400整除的是润年。 return 1; // 返回判断结果。 else return 0; }
相关文章推荐
- C语言基础实例
- 黑马程序员——java语言基础——常见小实例(For语句)
- Java语言基础08-创建 class 的实例
- java语言基础关于private修饰构造函数,实例对象详解-作者:逝秋
- C语言基础:三天打鱼两天晒网
- C语言基础实例1 — 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
- C语言基础实例
- SQLServer2008 Transact_SQL语言基础实例
- 为期三天的Python语言基础公开课举行
- Java实例 Part2:Java语言基础
- Java语言基础13-实例方法
- ORACLE PL/SQL 实例精解之第二章 通用编程语言基础
- java语言基础入门——反射机制实例
- 为期三天的Python语言基础公开课举行
- 汇编语言的基础知识标识符和表达式
- Oracle PL/SQL语言基础
- UML基础:统一建模语言简介
- C 语言编程基础篇之linux版
- 汇编语言的基础知识标识符和表达式的--复合内存变量的定义
- Linux下C语言编程--基础知识