C语言学习笔记

 这段时间学习了C语言的算法结构部分

 接下来就来介绍一下它的几种选择控制结构的方法:

首先我们先回顾一下算法的概念
        不管使用哪种程序设计语言,编者必须在序中明确而讲细地说明他们想让计算机做什么以及如何做。所谓算(Algurkthm),简单地说,就是为解次一个具体问题而采取的确定、有服,有序、可执行的操作步骤。当然,程序设计中的算法仅指计算机算,计算机够执行的原始问题算法,可以程序设计是一门艺术,主要体现在算设计和结构设计上,如果说结构设计是程序的肉体,那么算法设计就是程序的灵魂(Domald K.Kuth)。著名的计算机科学家沃思(N.Wih)提出一个经典公式:
数据结构·算法程序
        这个公式仅对面向过程的语言(如C语言)成立,它说明一个程序应由两部分组成:
(1)数据结构(Data Structure)是计算机存储,组织数据的方式,指相互之间存在一种成多种特定关系的数据元素的集合,
(2)算法是对操作成行为(即操作步)的描述。算法代表着用系统的方法述解决同题的策略,不同的算法可能用不同的时间,空间成效率来完成同样的任务,计算机进行问题求解的算法大致可分为如下两类:
(1)数值算法,主要用于解决数值求解问题,
(2)非数值算法,主要用于解决需要用逻椎理才能解决的问题,如人工智能中的许多同题以及索,分类等问题都属于这类算法。

算法的描述方法:
1.自然语言描述
        用自然语言(Natural Language)描述算法时,可使用汉语、英语和数学符号等,通俗易懂、比较符合人们的日常思维习惯,但述文字显得冗长,在内容表达上容易引起理解上的歧义,不易直接转化为程序,所以一般适用于算法较为简单的情况。

2.流程图描述
        流程图(FlowChart)是描述程序的控制流程和指令执行情况的有向图,它是程序的一种比较直观的表示形式。美国国家标准化协会(ANSI)规定的符号作为常用的这是一种最常见的IPO形流程图符号。用传统流程图描述算法的优点是流程图可直接转化为程序,形象直观,各种操作一目了然,不会产生歧义,易于理解和发现算法设计中存在的错误;但缺点是所占篇幅较大,允许使用流程线,使用者可使流程任意转向,降低程序的可读性和可维护性,使程序难于理解和修改。

3.NS结构化流程图描述
         NS结构化流程图是由美国学者LNassi和B.Schneiderman于1973年提出的,NS图(3)有效性,算法中的每个步都
数开平方成者取对数,就是一个无效的操作。
(4)允许没有输入或者有多个输人。
图是初学
(5)必须有一个或者多个输出。
然后再编写代码”的好习惯。错误也比直接在代工
5.2.2算法的描述方法算法的描述方法主要有如下几种。
5.3关系运算符与
1.自然语言描述
用自然语宫(Natural Language)描述算法时,可使用汉语、英语和数学符号等,通俗易懂、比较符合人们的日常思维习惯,但述文字显得冗长,在内容表达上容易引起理解上的歧义,不
国的章爷中,我们编写
(1)输入数据(Impius,。
易直接转化为程序,所以一般适用于算法较为简单的情况。
(2)对数据进行计算和处理
2.流程图描述
流程图(FlowChart)是描述程序的控制流程和指令执行情况的有向图,它是程序的一种
(3)输出运算结果(Out
比较直观的表示形式。美国国家标准化协会(ANSI)规定了如图5=1所示的符号作为常用的
这是一种最常见的IPO形
流程图符号。用传统流程图描述算法的优点是流程图可直接转化为程序,形象直观,各种操
在顺序结构程序中,只能自顶
作一目了然,不会产生歧义,易于理解和发现算法设计中存在的错误;但缺点是所占篇幅较
和数据的输入/输出是顺序结
大,允许使用流程线,使用者可使流程任意转向,降低程序的可读性和可维护性,使程序难于理解和修改。
式语句由表达式后接一个分在实际问题中,常常需要
3.NS结构化流程图描述
             NS结构化流程图是由美国学者LNassi和B.Schneiderman于1973年提出的,NS图就是以这两位学者名字的首字母命名的。它的最重要的特点就是完全取消了流程线,这样迫使算法只能从上到下顺序执行,从而避免了算法流程的任意转向,保证了程序的质量。与传统的流程图相比,NS图的另一个优点就是形象、直观,节省篇幅,尤其适合于结构化程序的设计。

接下我们就以上的思想正式介绍

1单分支语句

         当满足特定条件时,执行一段代码。通常使用if语句来实现单分支逻辑。如果条件为真,则执行if语句块中的代码;否则,跳过if语句块,继续执行后续的代码

    if语句的一般形式如下:

if(表达式)语句1

[else语句2]

if语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式。其中最直观、最容易理解的是关系表达式。所谓关系表达式就是两个数值进行比较的式子。

例如:3d538e50da8c4596bc57924ad646dfe7.png

 当输入的a值大于100时会输出”您输入的数字大于10。

2、双分支语句

        根据条件的真假,执行两个不同的代码块。通常使用if-else语句来实现双分支逻辑。如果条件为真,则执行if语句块中的代码;如果条件为假,则执行else语句块中的代码。

        if-else 语句是 C 语言中用于条件判断和执行不同代码块的控制结构

if-else语句的语法如下所示:

if (条件) {   //条件为真时执行的代码} else {   //条件为假时执行的代码}

又比如

563bf2dceb994648a87717bba153903d.png

用于判断输入的数字是否为奇数。

3.用于多分支控制的条件语句

        一种根据不同的条件,执行多个代码块的语句结构。通常使用if-else if-else语句来实现多分支逻辑。if语句先进行条件判断,如果满足条件则执行相应的代码块,否则继续执行else if语句,直到找到满足条件的代码块,或者执行完所有的else if语句后,执行else语句块。

        if多分支语法结构    

            if   (  表达式 1  ) 
            {  语句 1 ; }
            else  if   ( 表达式2   )
            {  语句 2 ; }
            else  if   ( 表达式3   )
           {   语句3 ; }
            else
          {   语句4 ; }

例题举例

#include<stdio.h>
int main()
{
    int a, b;
    scanf("%d %d", &a, &b);
    if (a > b)
    {
        printf("%d>%d", a, b);
    }
    else if (a == b)
    {
        printf("%d=%d", a, b);
    }
    else
    {
        printf("%d<%d", a, b);
    }
    return 0;
}

这是用于判断输入两个数字的大小关系。

4、用于多路选择的switch语句

        一种在某些编程语言中存在的条件语句,根据给定的表达式的值,执行对应的代码块。遇到break时整个语句会终止。

switch语句是一个多分支选择语句,并且可以支持嵌套。

switch语句的基本格式

switch(表达式)
{
case 常量1:语句1
case 常量2:语句2
default:语句n   
    break;
}

实际应用例题

#include <stdio.h>
int main() 
{
    char day = 'M';
    switch (day) 
    {
        case 'M':
            printf("It's Monday\n");
            break;
        case 'T':
            printf("It's Tuesday\n");
            break;
        case 'W':
            printf("It's Wednesday\n");
            break;
        default:
            printf("It's some other day\n");
            break;
    }
    return 0;
}

这是代码不同的变量代表不同的输出结果。

其输出的结果为: It's Monday

 

好了,今天我们对C语言选择控制分支结构类型的内容就介绍到这里。谢谢大家!

 

 

 


                            

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值