占位符体现的编程思想

来源:互联网 发布:孙俪的淘宝店铺等花开 编辑:程序博客网 时间:2024/05/20 09:47

        相信只要会编程的人都知道占位符有什么作用,顾名思义,用来代替数据占一个位置。 但是为什么要用占位符呢?直接写出结果不就好了吗?

       这就是我做几个题目之后得出的结论:占位符可以省略计算。

      例如:int a=3,b=4;

                  printf("a+b=7\n",a+b);

         这个语句很显然是成立的,但是我们考虑一个问题,计算机是用来计算的,相比于人脑,计算机的计算速度是用秒来衡量的。简单的计算程序员也能一下子算出结果,如果数值很大怎么办呢?就让计算机代替我们来计算,所以这时候就用占位符。

         把上面的语句用下面一句代替,效果就会好很多:

         printf("a+b=%d\n",a+b);

         换成占位符之后,就算a和b的数值很大也不关程序员的事了。

         再举个例子:取一个整数a的从右端开始的4~7位。

         分析:提取一个数的某些位,显然用按位与&运算。要提取4~7位,就要与 1111 0000=240按位与计算。一想到这我就很开心了,感觉自己可以一下子就把这个题目解决,于是刷刷下了几行程序:

         int a,b;

         printf("请输入一个数字:");

         scanf("%d",&a);

         b=a&240;

         printf("%d\n",b);

结果听到别的人说什么左移右移,我就有点傻了:这需要左移右移干嘛?不过看了一下,的确觉得自己hin天真,想法弱爆了,完全没有考虑到数字的虚化问题,因为我是用一个具体数字做例子得出一个解法,然后写程序,这就导致我忽略了如果输入的数字很大时的情况。准确的程序如下:

         

       int a;

       int b=0,c=0;

       scanf("%d",&a);

       a=(a>>4);

       c=~(~0<<4);

       b=a&c;

       printf("%d\n",b);

这样写在不溢出的情况下,随便什么数都能得出结果,而且完全由计算机计算。

       在学习编程的过程中,我们要养成让计算机自己计算的习惯,能“懒”绝不勤快。解决要一个题目,首先要知道它的算法,由具体化到模糊化,即可以先用一个具体的数字来让自己明白基本的解决步骤,但是也要考虑到,程序针对的不仅仅是一个数字,这个时候就要把数字模糊化,考虑大范围的情况。

       学习记录,仅个人想法。


       



             

       

0 0
原创粉丝点击