《C++大学教程》 4-5章 笔记

0. 前言

《C++大学教程》 4-5章 笔记更一下,每一章附一道课后题代码。

4. 控制语句(第I部分)、赋值、自增和自减运算符

解决问题的步骤称为算法,包含:
1. 执行的动作
2. 这些动作的执行顺序

伪代码是一种人为、非正式的语言,目的是帮助程序员不必受C++语法细节的束缚而开发算法。伪代码语句通常只描述可执行语句

三种控制结构顺序机构选择结构循环结构

条件运算符(?:):C++唯一的三元运算符

else总是与其前面最近的尚未配对的if结合

在计算机上解决问题最困难的部分在于开发出解决该问题的算法,而从算法生成C++程序通常是相当简单的

两个整型数相除即为整数除法,计算结果中的小数部分都将被丢弃,即截尾

当开发工业级的实际代码时,应当对所有能导致上溢和下溢的计算执行检查

在每次用户输入之前最好给出相应的提示

	 ... ...
 	 double average = static_cast< double >( total ) / gradeCounter;
     ... ...
     cout << setprecision( 2 ) << fixed;
     ... ...
  1. C++强制类型转换运算符static_cast
    static_cast< double >可以用于产生其操作数的一个临时浮点数副本
  2. 参数化流操作符setprecision指定 输出精度数字位数,即小数点右边应该输出几位数字
    必须包含预处理命令: #include <iomanip>
  3. 相对于科学计数法而言,流操作符fixed指出了浮点数值应以所谓的浮点格式输出
    流操作符showpoint强制浮点数将小数点输出
  4. 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)计算xy次幂的值,必须包含预处理命令: #include <cmath>

参数化流操作符setw指定下一个值输出时占用的域宽。默认情况下,值是向右对齐输出的。如果欲输出的值的宽度大于指定的域宽,那么域宽扩大到整个值的范围。
流操作符left使得值的输出向左对齐,流操作符right可用于恢复值的输出向右对齐

函数cin.get()从键盘读入一个字符

=运算符从右到左结合

switch语句由一系列的case标签和一个可选择的default情况组成

break语句的常见用法:要么提前离开循环,要么跳过switch语句的剩余部分

continue语句可使程序跳过循环体内剩下的语句,继续进行循环体的下一次迭代

短路计算
&&将最有可能成为false的条件放在最左边
||将最有可能成为true的条件放在最左边

流操作符boolalpha指定每个布尔表达式的为truefalse

==运算符与=运算符的混淆问题
将常量放在左边,变量名放在右边
假如=替代了==,编译器将起保护作用,认为这种书写形式是一个编译错误

练习题 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");
}

结语

把前四五章更一下,看完第七章后更下一篇。

这几天老是习惯性崩溃,考试也临近了,加个班逃避一下闲下来的崩溃。

个人水平有限,有问题欢迎各位大神批评指正!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值