0. 前言
《C++大学教程》 4-5章 笔记更一下,每一章附一道课后题代码。
4. 控制语句(第I部分)、赋值、自增和自减运算符
解决问题的步骤称为算法,包含:
1. 执行的动作
2. 这些动作的执行顺序
伪代码是一种人为、非正式的语言,目的是帮助程序员不必受C++语法细节的束缚而开发算法。伪代码语句通常只描述可执行语句。
三种控制结构:顺序机构、选择结构和循环结构
条件运算符(?:):C++唯一的三元运算符
else总是与其前面最近的尚未配对的if结合
在计算机上解决问题最困难的部分在于开发出解决该问题的算法,而从算法生成C++程序通常是相当简单的
两个整型数相除即为整数除法,计算结果中的小数部分都将被丢弃,即截尾
当开发工业级的实际代码时,应当对所有能导致上溢和下溢的计算执行检查
在每次用户输入之前最好给出相应的提示
... ...
double average = static_cast< double >( total ) / gradeCounter;
... ...
cout << setprecision( 2 ) << fixed;
... ...
- C++强制类型转换运算符:
static_cast
static_cast< double >
可以用于产生其操作数的一个临时浮点数副本 - 参数化流操作符
setprecision
指定 输出精度数字位数,即小数点右边应该输出几位数字
必须包含预处理命令:#include <iomanip>
- 相对于科学计数法而言,流操作符
fixed
指出了浮点数值应以所谓的浮点格式输出
流操作符showpoint
强制浮点数将小数点输出 cout << setprecision( 2 ) << fixed;
格式的设置如果不被更改,则会一直起作用
练习题 4.34 b)
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int number;
int copy_n;
double i;
copy_n = 1;
i = 1;
cout << "The number of items: " << endl;
cin >> number;
double sum = 1;
while (number > i)
{
copy_n *= i;
sum += 1 / static_cast<double>(copy_n);
i += 1;
}
cout << setprecision(10) << fixed;
cout << " e is " << sum << endl;
system("pause");
}
5. 控制语句(第II部分)和逻辑运算符
如果用浮点变量 控制计数器循环,那么会产生不精确的计数器值,并导致对终止条件的不准确测试
for( 初始化; 循环继续条件; 增值)
语句;
for语句的增值部分可以是负增长的
逗号表达式 :从左到右依次求值
最常见于for语句中,主要用途:让程序员使用多个初始化表达式或多个增值表达式
函数pow(x,y)
计算x
的y
次幂的值,必须包含预处理命令: #include <cmath>
参数化流操作符setw
指定下一个值输出时占用的域宽。默认情况下,值是向右对齐输出的。如果欲输出的值的宽度大于指定的域宽,那么域宽扩大到整个值的范围。
流操作符left
使得值的输出向左对齐,流操作符right
可用于恢复值的输出向右对齐
函数cin.get()
从键盘读入一个字符
=运算符从右到左结合
switch
语句由一系列的case
标签和一个可选择的default
情况组成
break
语句的常见用法:要么提前离开循环,要么跳过switch
语句的剩余部分
continue
语句可使程序跳过循环体内剩下的语句,继续进行循环体的下一次迭代
短路计算:
&&
:将最有可能成为false
的条件放在最左边
||
:将最有可能成为true
的条件放在最左边
流操作符boolalpha
指定每个布尔表达式的为true
或false
==
运算符与=
运算符的混淆问题:
将常量放在左边,变量名放在右边
假如=
替代了==
,编译器将起保护作用,认为这种书写形式是一个编译错误
练习题 5.6
#include <iostream>
using namespace std;
int main()
{
int number;
double sum = 0;
double average = 0;
int flag = 0;
cout << "Input the number(enter -1 to quit):" << endl;
cin >> number;
while (number != 9999)
{
sum += number;
flag++;
cin >> number;
}
average = sum / flag;
cout << "The sum is: "<< sum << endl;
cout << "The average is: " << average << endl;
system("pause");
}
结语
把前四五章更一下,看完第七章后更下一篇。
这几天老是习惯性崩溃,考试也临近了,加个班逃避一下闲下来的崩溃。
个人水平有限,有问题欢迎各位大神批评指正!