c++分支结构程序设计总结

c++分支结构程序设计总结

 

写在前面——什么是分支结构:

分支结构用来将输入值按符合的不同条件分类,执行相应的语句。

分支语句用于实现分支程序设计。

分支程序有两路分支结构和多路分支结构,两路分支结构可用if语句实现,多路分支结构可以用嵌套的if语句或switch语句实现。

 

目录

一、运算符

二、运算符优先级

三、分支结构语句

四、总结与心得

 

一、运算符
            ——进行运算中运用的符号

⒈算术运算符
⒉关系运算符
⒊逻辑运算符
⒋位运算符
⒌赋值运算符
⒍杂项运算符

 

⒈算术运算符

假设变量 A 的值为 10,变量 B 的值为 20,则:

 

⒉关系运算符

假设变量 A 的值为 10,变量 B 的值为 20,则:

⒊逻辑运算符

假设变量 A 的值为 1,变量 B 的值为 0,则:

⒋位运算符

位运算符作用于位,并逐位执行操作。

假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:

A = 0011 1100

B = 0000 1101

A&B = 0000 1100

A|B = 0011 1101

A^B = 0011 0001

~A = 1100 0011

假设变量 A 的值为 60,变量 B 的值为 13,则:

⒌赋值运算符

⒍杂项运算符

下表列出了 C++ 支持的其他一些重要的运算符。

 

二、运算符优先级

运算符的优先级确定表达式中项的组合。这会影响到一个表达式如何计算。

某些运算符比其他运算符有更高的优先级,例如,乘除运算符具有比加减运算符更高的优先级。

例如 x = 7 + 3 * 2,在这里,x 被赋值为 13,而不是 20,因为运算符 * 具有比 + 更高的优先级,所以首先计算乘法 3*2,然后再加上 7。

下表将按运算符优先级从高到低列出各个运算符,具有较高优先级的运算符出现在表格的上面,具有较低优先级的运算符出现在表格的下面。在表达式中,较高优先级的运算符会优先被计算。

 

三、分支结构语句

 

  ⑴if语句

  ⑵条件表达式

  ⑶switch语句

 

⑴if语句

1.含义:根据条件判断,来执行不同语句

所以分支结构都可以使用if语句

2.格式:

①if语句 

② if else语句 

③ if(表达式1) 语句1

else if(表达式2) 语句2         

  …                                     

else if(表达式n) 语句n ...

else 语句n+1

3.例题:

利用 if语句判断小明的成绩在班里的层次(满分100):

>=90分,优秀;>=80分,良;>=60分,及格;<60,分,不及格。

#include<iostream>

using namespace std;

void main() {

float score;

cout << "please input socre :";

cin >> score;

if (score>100 ||score<0)

cout << "数据错误" << endl;

else if (score>=90)

cout << "优秀" << endl;

else if (score >= 80)

cout << "良" << endl;

else if (score >= 60)

cout << "及格" << endl;

else

cout << "不及格" << endl;

system("pause");

}

注意:

1、有if不一定有else ,但是有else必定有if

2、if 语句后面不要加分号,if(0);相当于if(0){ } ,不执行后续语句。

       如果if满足不执行任何语句可以加分号 

3、关于{}的省略

  不加{} if只匹配离他最近的一句

  如果{}只有一句 那么可以省略{}

  刚刚开始写不熟练就不要省略了

   4、条件的写法

    if(20==x) 涉及到 == 的时候,常量可以放左边,避免少写=

 

⑵条件表达式

⒈含义:通过是否满足某个条件,来进行有选择的取值——常应用于分段函数来简化程序

⒉格式:表达式1  ? 表达式2   :表达式3

首先计算第一个表达式的值,若为真,则只计算表达式2,并作为整个表达式的值,否则,只计算表达式3的值

3.例题:

①用条件表达式输出,一个数是偶数输出”is even",奇数输出“is odd”

cin>>num;

cout<<((num%2==0)?"is even" : "is odd")<<endl;

②输出100个10-20的随机数,10个一换行

   srand(time(0));

    for (int i  = 1;i<101;i++)

    {

    cout<<(10 +rand()%(20-10))<<((i%10==0) ? "\n" : " ");

注意:使用条件表达式时,需要满足的条件和计算表达式必须非常明确

 

⑶switch语句

⒈含义:switch——开关,根据取值的不同,来执行不同语句

当用if语句过于复杂时可以用switch语句简化过程,

但是当变量过于复杂时不适用。

2.格式:

switch (表达式)

case常量表达式 1:语句1; break;

case常量表达式 2:语句2; break;

case常量表达式 n:语句n; break;

default: 语句n+1; break;

}

3.例题:

输入数字1-7:

如果输入1,输出星期一;

如果输入2,输出星期二;

……

如果输入7,输出星期日;

#include<iostream>

using namespace std;

void main() {

int number;

cout << "please input a integer which between 1 and 7 :";

cin >> number;

switch (number)

{

case 1:cout << "星期一" << endl;break;

case 2:cout << "星期二" << endl;break;

case 3:cout << "星期三" << endl;break;

case 4:cout << "星期四" << endl;break;

case 5:cout << "星期五" << endl;break;

case 6:cout << "星期六" << endl;break;

default:cout << "星期日" << endl;break;

}

system("pause");

}

注意:(1)case后面只能是整型和单个字符, 不可以是小数和字符串(中文算字符串)。且case后面的常量表达式的类型必须与其匹配,case后面的值不能相同。 

            (2)以case中的常量表达式值为入口标号,由此开始顺序执行。

每个case分支最后应该加break语句。没有break继续执行后面的case语句。

           (3)case值是语句标号,每个case常量表达式的值必须互不相同。

           (4)default语句是可选的(为了规范,最好写上) 所有可能的选项都能列举出来就用switch (可以和枚举搭配),但是一个switch里只能有一个default

 

补充:

break和continue语句:

break作用:中止switch语句的执行,并跳出switch语句;

从最近的封闭循环体中跳出,转而执行循环体的下一条语句。

【只能用于switch和循环语句中!】

continue作用:结束本次循环,执行表达式3,开始下一轮循环。

【并不从循环体中跳出,除非已处于循环结束点】

 

四、总结与心得

 

㈠总结犯过的错误 

1.使用函数公式时忘记在开头加cmath

2.在#include<iostream>和if后顺手加";"

3.忘记切换英文标点

4.在if语句中漏加或多加“{”、“}”

5.定义变量时忘记赋值

 

㈡做题过程中发现的注意点

1.变量中输出a为cout<<'a'  ,

   输出pass为cout<<"pass",注意单引号和双引号

2.保留小数点后两位:

       #include<iomanip>

        float p

        p=a/3.0

        cout<<setprecision(2)<<fixed<<p<<endl

3.int型与double型同时计算,按double型输出,如需整数,则可取整

      函数取整:

      #include<cmath>

        q=floor(q)      下取整   如floor(2.5)=2.0

        q=ceil(q)   上取整   如ceil(2.5)=3.0

4.定义一个四位数:int a[4]

5.在一个字符串中将前三位字符改成“a”:

    for (int i=0 ; i<3 ; i++){

            str[i]='a'   }

6.相等的“==”写成赋值的“=”

 

㈢学习感悟

1.学习中理论需要与实践相结合

我看书时有一些知识点单看定义不是很明白,然后结合后面的例题,就能弄清楚知识点的运用形式

2.简单常规的地方也不能忽视

我有一次编写openjudge的一道题,在写代码软件上通过后复制到网站上,漏了复制c++格式的第一行#include<iostream>,而检查时只是从思路问题和答案的各种可能行考虑,反复修改程序几次都不能通过,用不同办法重新编写也无法通过。最后束手无策,想要放弃的时候,从开头看了一下,才发现复制的固定格式少了第一行,加上去之后就通过了。

3.在改正错误时能学会新知识,锻炼思维

虽然我漏掉格式第一行导致程序几次不能通过,但是在改程序的过程中反复思考各种不同解题思路,将一道题写了好几种不同的解法,并且在写新解法的过程中查找资料信息,学会了新的语句,把程序改进的更简洁严密。

 

最后:希望我可以理解并掌握c++知识,做到熟练运用c++语言解决问题。

 

参考:《信息学奥赛课课通》,网络资料

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
《数据结构与程序设计(C语言描述)》PDF是一本讲解数据结构和程序设计的书籍,内容主要涵盖了数据结构的基本概念、算法和C语言编程的实践。该书适合计算机专业的学生和工程师阅读,也适合初学者通过自学来学习计算机科学的相关知识。 该书第一章介绍了数据结构和算法的基本概念,包括数据结构的定义、分类以及常见的数据结构。另外,还简要介绍了算法的流程和基本要素。第二章阐述了C语言编程的基础知识,包括数据类型、算术运算符、输入输出等内容。第三章重点介绍了指针的概念、用法和指针与数组之间的关系,为后面的数据结构和算法的实现打下了基础。 第四章开始介绍线性表,包括顺序表和链表的实现,以及常见的线性表操作。第五章详细介绍了栈和队列,包括栈和队列在计算机科学中的应用。第六章着重阐述了树和二叉树的概念,并介绍了树的遍历和二叉树的建立和遍历算法。 第七、八章介绍了图的概念、表示方法和遍历算法,以及最短路径和最小生成树的算法。第九章讲述了排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序、归并排序以及基数排序等。 除此之外,该书还有附录部分,包括了C语言的基础知识、常用算法的伪代码和一些常见的错误。总之,《数据结构与程序设计(C语言描述)》PDF是一本从基础知识到高级算法全面涵盖的书籍,是计算机领域的经典著作,值得学习和推广。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Charlessid·Slytherin

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值