本帖最后由 springD 于 2015-11-24 13:39 编辑
输入一个年份求闰年,我自己的思路和谭浩强老师C语言课本的思路不太一样,但我觉得我的思路也是对的,请大家指点。我的思路:
课本思路:
我的code:
#include <stdio.h> int main() { int year; printf("请输入一个年份\n"); scanf("%d",&year); //能被400整除的年份为闰年 if(year%400==0) printf("%d 是闰年\n ",year); else { if(year%100!=0) { //不能被400整除,不能被100整除,但能被4整除的年份为闰年 if(year%4==0) printf("%d 是闰年\n",year); //不能被400整除,不能被100整除,也不能被4整除的年份不是闰年 else printf("%d 不是闰年\n",year); } //不能被400整除,能被100 else printf("%d 不是闰年\n",year); } }
谭老师code:
#include <stdio.h> int main() { // 利用if(1)恒真,f(0)恒假,因此定义一个value int year,value; printf("请输入一个年份\n"); scanf("%d",&year); //不能被4整除的年份不是闰年 if(year%4!=0) value = 0; else { //能被4整除,不能被100整除的年份是闰年 if(year%100!=0) value = 1; else { //能被4整除,能被100整除,能被400整除的年份是闰年 if(year%400==0) value = 1; //能被4整除,能被100整除,不能被400整除的年份不是闰年 else value = 0; } } //value=1为真,value=0为假 if(value) //为便于显示,此处不加"\n" printf("%d是",year); else printf("%d不是",year); //接上一部分输出 printf("闰年"); }
请问我的算法是否正确,我运行起来没有问题。
|