最优化的那种 if(year%4==0&&year%100!=0)
printf("%d is",year);
else
(year%400==0)
printf("%d is",year);
最繁琐的那种
#include<stdio.h>
int main()
{
int year,leap;
printf("enter a year:");
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
if(leap=1)
printf("%d is",year);
else
printf("%d is not ",year);
printf("a leap year.\n");
return 0;
}
这是一个很简单的判断输入的年份是不是闰年的程序,也是我写的第一个if语句嵌套的程序,在这段代码中,用了三个if语句的嵌套,实现了数据的三次筛选,最终得到想要的结果,如果再加一个for循环的内置,就可以实现任意一段年份的闰年判断。这段代码在你们看来或许很简单,没有什么出彩的地方,但是却让我着实得到了一些启发。下面我就把我得到的一些启发写下来。
一个代码是否好的标准有几样,代码的简洁程度,执行的时间复杂度,而对于结果的打印,也是可以自己去安排。相对编出这段代码的人来说,这些都很重要,这几样指标标志着是否可以让代码更加稳定并且高效的执行,而对于用户来说,页面是否人性化,在运行这个程序之后是否可以得到想要的结果,以及最终的界面是否一目了然,让人感到很舒服。
就拿这个小代码来说吧,毕竟我的技术有限,还需要不断去积累。首先,看到这个题目的时候,我已经可以想到好几种函数的排列,但是,就我而言,上面的那段代码,是其中最为冗长的,为何呢?因为,同样是判断一个结论,这个代码用了三个if和三个else,实在是啰嗦,于是,想到了优化一下,只要一个if就好,其他的几句用else if代替,但是,还是觉得啰嗦啊,于是想到了一个最为简单的,只要一个if else语句就好了,具体实现就在最上面。用了一个二元运算符,明显减少了很多代码量,因此我觉得一个好的代码,应该可以是不断优化的,使它不断地精简。
对于程序的时间复杂度,我的一点小心得就是,能够尽量在代码中可以找到的优化项目就不要放在程序中去执行了,毕竟我们一开始就已经把不要的数据剔除掉了,那样让计算机去执行的数据就会少很多,比如说,在判断是否是闰年的时候,奇数就可以不用考虑了,那么用一个小小的for循环就可以去除这部分数据,在数据少的时候不会体现出来多大差别,但是如果数据很多,还是可以节省不少时间的,所以我觉得,以后在编码的过程中,应该不断地去思考,怎样才可以让时间复杂度降到最小
关于显示界面,可以使用一些转义字符,空格,必要的时候可以加一些例如* / 等符号使数据更有区分度,当然,如果技术允许的话,完全可以做一个交互界面,那样是最好的,即方便又美观,只可惜目前我的实力有限,还需要吸纳更多的知识去充实自己。
今天就说这么多了,谢谢你们可以看一个小白的成长之旅,晚安。