第九讲 if()

       周末很愉快的就过去了,不知道上一讲留给大家思考的问题有没有实现出来,好吧,不管如何,我们今天就从乘法口诀表开始吧:
实现乘法的算法很简单,我们大家都知道怎么实现,所以这个问题所以的考察的要点有两点,一是for循环的运用,二是换行符的使用,如果大家还有疑问,我们不妨先看下程序再来看看是不是还有疑问。
——————————
#include <stdio.h>
#include <stdlib.h>
int main()
{
     
int i,j;


     for(i=1;

i<=9;

i++)
     {
             for(j=1;

j<=i;

j++)
                   printf(“%d*%d=%dt”,j,i,j*i);


             printf(“n”);


     
}   

      system(“PAUSE”);


}
———————————–
程序的设计很简单,不过这其中包含了一个要给大家说的知识点,那就是嵌套循环,这里的嵌套循环就是一个for循环里面又套了一个for循环,嵌套循环的要旨没什么难理解的,就是从外入内又从内入外,为什么什么这么说呢?因为每一个循环都得从最外的循环开始进入,然后执行内部循环,把内部循环执行完成之后,又重新回到外部循环进行下一项,再进入内部循环,所以这样无休无止的循环直到把最外层循环执行完成之后才会退出循环。
嵌套循环的时间复杂度给n的m次方,每个循环所执行的次数,嵌套的循环数,就好比我们现在这个例子,他的时间复杂度就是9的2次方,当然这是数据结构该研究的范畴,或许我们会说一些数据结构的知识,不过不是现在,我们还是回到正题上来。
上面的例子中,当函数执行到第一个for处,i=1,然后进入第二个循环,因为第二个循环用了第一个循环传递进来的i做参数,所以第二个循环j执行到1时便结束了第二个循环,这里就是1*1 = 1,这个时候我们要做的是要换行,但是换行不能用用在第二个循环里面,而要在第一个循环里面来执行,当然有疑惑的同学可以试着把第二循环写成下面这样来运行一下看看结果:
—————————
for(j=1;

j<=i;

j++)
     printf(“%d*%d=%dtn”,j,i,j*i);


—————————–
然后把下面的printf(“n”)给注释起来,说到注释,又得说一下,如果大家不想要某一行代码参与运行,可以在这行代码前添加两条斜杠”\”,当然大家也可以在某行代码的后面添加注释,标明改行代码是干嘛的,这些注释前代码的分号后面记得要加上双斜杠。如果想要把某段代码全部注释起来呢?当然也可以每一行前面添加双斜杠,但还有一个更简单的方法,那就是用单斜杠搭配*号来围起来,怎么围呢?就是正反来一个就好了,像这样即可:
——————————–
/*———————–
   需要注释起来的代码段
————————*/
——————————–
还是回到上面的问题,如果我们把打印换行的那一句给注释起来,大家是不是发觉打印出来的东西特么的别扭,所以,这个例子不光考察了大家对循环的理解,还同时考察了大家对换行符的使用,好吧,说到这里,想必大家都应该清楚了,我们现在来看下输出:
第九讲 if()
 

大家是不是看到每一列都很完整的对齐?这就是有人疑惑的那个t的功劳了,t上一讲我们说了,这是一个水平制表符,他的作用就是水平跳几个空格,保证每一列都能够实现左对齐。乘法口诀表就到这里吧,同时for也就到这里。
————————————-
if,顾名思义,这是一个条件判断语句,通常和else配合使用,也可以单独使用,他的意思是如果什么,那就做什么,否则就做什么。
———————-
if(什么)
     做什么;
else if(什么)
     做什么;
……
else
    做什么;
————————
光说不练就是纸上谈兵了,我们来个实例,也便好说明这个问题。
——————————
#include <stdio.h>
#include <stdlib.h>
int main()
{
     
int i;


      while(scanf(“%d”,&

i))
    {
          if(i>=0&

&

i<60)
               printf(“不及格,重考,下一个n”);


          else if(i>=60 &

&

i<70)
               printf(“一般般吧,勉强过关,下一个n”);


          else if(i>=70 &

&

i<90)
                printf(“好像还不错的样子,再接再厉,下一个n”);


          else if(i>=90 &

&

i<=100)
                printf(“漂亮,就是要这样,下一个n”);


          else
                printf(“无效成绩,什么玩意,下一个n”);


   
}

     system(“PAUSE”);



return 0;


}
—————————————
我们在看看运行效果,我们随便输入几个数字看看:
第九讲 if()
是不是觉得挺有意思的啊?是不是发现这好像有些菜单的感觉?嗯,不错,之所以举这个例子,主要是因为后面我们在说到switch()的时候我们用switch来实现这个例子,我们用switch来实现大家就更清楚了,实现菜一个单功能的思路也就更加清晰了。
if()同样可以和for()和while()等函数嵌套使用,关于这一点,留在明天吧,今天给大家留个思考题,大家有兴趣的话去分析一下怎么计算。
———————————————
      ABCDE五人在一场比赛中经过强烈的竞争后终于排下名次来,这五人的共同之处是有同一个好朋友,但遗憾的是他们的好朋友却因为一些事而不能参加,比赛结束后他们的好朋友分别询问了他们的名次,得到的回答如下:
      C不是第一名,D比E低两个名次,而E不是第二名,A既不是第一名也不是最后一名,B比C低一个名次。
      他们的朋友想了想终于得出了答案,现在要让大家用一个控制台程序来实现这个排名,大家能够实现吗?
——————————————

发表评论