• C语言学习笔记(5)—— 语句(1)


      c程序常见结构大概有选择结构,循环结构,顺序结构。c程序由一个一个的函数构成,而构成函数的则是语句,语句包含赋值语句,循环语句,条件语句,分支语句。赋值语句对与我们来说是很熟悉的。条件语句,分支语句与循环语句则会在后面一一介绍到。

      顺序结构对于我们来说是很熟悉的,它可以是这个样子。

    int main(){
      double a = 0,b = 0;
      scanf("%lf%lf",&a,&b);
      printf("a + b = %lf",a+b);
      printf("a - b = %lf",a-b);
      printf("a * b = %lf",a*b);       
      return 0;               
    }    

      在这段程序里,我们定义了两个双精度浮点型变量,然后调用scanf()函数从键盘读取了a,b的值。又调用了printf()函数打印出a+b,a-b,a*b,为什么没有计算a/b呢?因为我们不能判断b的值是否为零,从而计算出a/b的值或者报错。这段代码就是典型的顺序结构。它的框图可以是这样(经过抽象)。

      条件结构,在上面的代码里,我们的程序似乎很"傻",因为它不能对a和b进行判断,导致我们不能直接计算出a和b的商,我们该怎么做,才能让程序变的,聪明点呢??实际上,我们只需要对b的值进行判断,当b为0时,输出错误信息。当b不为零时,我们就可以求出a和b的商。用算法框图可以这样表示。

      我们可以,改进上面的程序

    #include <stdio.h>
    
    int main(){
      double a = 0,b = 0;
      scanf("%lf%lf",&a,&b);
      printf("a + b = %lf",a+b);
      printf("a - b = %lf",a-b);
      printf("a * b = %lf",a*b);   
      if (0 == b) {
        printf("Error,b=0");    
      } else {
        printf("a / b = %lf",a/b);
      }      
      return 0;               
    }   

      我们可以看见,多出来的是这一段。

             

        这段代码就是典型的if-else语句,当b为0时,程序输出错误信息。当b不为0时,程序计算出a与b的商。if-else语句一般是这样的形式。 

    if (表达式) {
       ....
       .... 
       ....
    } else {
       ....
       ....
       .... 
    } 

        当括号内表达式的布尔值为true时,执行if下方代码块的语句,当括号内表达式的布尔值为false时,执行else下方代码块的语句。

     现在,我们用if-else语句来求一个分段函数的值。

      

    #include <stdio.h>
    
    int main(){
        double x;
        scanf("%lf",&x);
    
        if ( 0 == x) {
            printf("f(%.0lf) = 1",x);
        } else if (0 > x) {
            printf("f(%lf) = 0",x);
        } else {
            printf("f(%lf) = %lf",x,x*x);
        }
        return 0;
    }

      我们使用了if-else if语句来帮助我们进行了多重选择,所以,当可选情况比较多的时候,我们可以考虑使用if-else if语句。这篇文章介绍了顺序结构和选择结构,在后面的文章里,会介绍到循环结构和分支结构。在了解了这些强大的语句之后,就可以使用C语言来完成一些算法题或者写出一些好玩儿的程序。

     

      

  • 相关阅读:
    linux下如何查看cpu信息
    Linux更换HBA卡后重新扫盘指令
    oracle 11gR2 RAC存储迁移
    Data Migration from Various Storage Types Using EMC VPLEX and EMC RecoverPoint Technologies
    【11grac】Oracle RAC 更换存储实验
    Oracle RAC 11GR2更换主机不换存储--ASM磁盘组异机挂载 推荐 原创
    ELK(Elasticsearch + Logstash + Kibana) 日志分析平台
    Ogg For Bigdata 同步Oracle数据到KAFKA(包括初始化历史数据)
    stm32cubemx+clion环境搭建
    stdarg宏与实现stm32printf串口打印
  • 原文地址:https://www.cnblogs.com/zhuxingtian/p/9898983.html
Copyright © 2020-2023  润新知