第14课 列竖式做计算
列竖式做计算(setw()函数)

输出金字塔实现*左对齐、右对齐、居中对齐。你有什么办法吗,尝试着编写程序试一试吧。

温故知新
左对齐输出只需要按照图案正常输出就可以达到效果。

右对齐
右对齐用空格补位的方式输出,但这里我们使用一个新的函数setw(),它可以快速地设定输出的宽度。

*齐刷刷地靠着最右边了,对得整整齐齐,有种向右看齐的架势。
划重点
在使用setw()函数之前,需要添加头文件#include。
setw(int n):整数n表示字段宽度,它只对紧跟其后的输出内容有效。

当后面紧跟着的输出内容长度小于n的时候,在该内容前面会用空格补齐;当输出内容长度大于n的时候,内容会全部整体输出,并不会被截取。

居中对齐
升级挑战,如何确定setw()函数中的参数值。当我们希望*能够居中显示时,就需要排兵布阵了。

在这个输出中,我们不仅需要考虑*,还需要考虑|。
跟着我一起来排兵布阵。setw()函数中括号里的数字代表的不是空格的数量,而是整体长度,不够时使用空格补充。

对照阵列图,编写代码就轻松了。

挑战再度升级,运用setw()函数列竖式做计算吧!
列竖式做计算

遇到格式,我们都可以先排兵布阵,一个简单的草图会帮助我们更快速地确定具体数值。

●第一排设置12的宽度。
●第二排设置一个4的宽度和一个8的宽度。
●第三排全是-,不需要设置,输入16个-。
●第四排设置12的宽度。

运行程序,输出结果为:
输入第一个加数:2023
输入第二个加数:2022


巩固练习
(1)阅读以下代码,程序运行后的正确输出是()。

A.

B.

C.

D.

(2)下面代码输出中会有几个空格?()
int number=2023; cout<<setw(3)<<number<<endl; A.4
B.3
C.2
D.0
(3)编写程序将案例列竖式做计算中的加法运算程序改成减法运算,并输出4321-1234的竖式。
第2部分 智能的开始 —— 选择结构
第二部分
智能的开始
——选择结构