CPP05

You might also like

You are on page 1of 66

Sunday, December 10, 2023  01:38:52 PM

Cá c cấ u trú c điều khiển


Lệnh đơn giả n
Cấ u trú c tuầ n tự
Ghép
Chọ n
Lặ p
Nhảy
© Lê Minh Hoà ng. All Rights Reserved.
Lệnh đơn giả n
Lệnh gá n
v = e;
Lệnh nhậ p xuấ t chuẩ n
cin >> …;
cout << …;
Lờ i gọ i hà m
ios::sync_with_stdio(false);
Có thể coi: Lệnh đơn giả n = biểu thứ c kết thú c bở i dấ u “;”
2
Giả i phương trình bậ c nhấ t
Nhậ p và o 2 số thự c , (), giả i phương trình
Chương trình
Khai bá o hai biến số thự c ,
Nhậ p 2 biến , từ bà n phím
Đưa ra nghiệm
3
Giả i phương trình bậ c nhấ t
#include <iostream>
using namespace std;
int main()
{
double a, b;
cout << "Cho a, b = ";
cin >> a >> b;
cout << "Nghiem x = " << -b / a;
}
4
Diện tích hình trò n
Nhậ p và o mộ t số thự c
Cho biết diện tích hình trò n đườ ng kính

5
#include <iostream>
#include <cmath>
using namespace std;
const double PI = atan(1) * 4;
int main()
{
double d;
cout << "Cho duong kinh: ";
cin >> d;
cout << "Dien tich = " << PI * d * d / 4;
}
6
Cấ u trú c tuầ n tự
S1 S1;, S2;, …, Sn;: Lệnh
;
Khi viết cá c lệnh liên tiếp chương trình sẽ thự c
S2
hiện lầ n lượ t cá c lệnh theo đú ng thứ tự đó .
;

Sn
;
7
Diện tích tam giá c
Nhậ p và o 3 số thự c , , là độ dà i 3 cạ nh củ a mộ t
tam giá c, tính diện tích tam giá c đó
Cô ng thứ c Heron…

8
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c, p, s;
cout << "Cho ba canh: ";
cin >> a >> b >> c;
p = (a + b + c) / 2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
cout << "Dien tich = " << s;
}
9
Lệnh ghép
{ Có nhữ ng nơi trong chương trình khô ng cho phép viết
nhiều hơn 1 lệnh, khi đó để thự c hiện nhiều lệnh, cầ n
S1; phả i “gó i” chú ng thà nh mộ t lệnh ghép
Lệnh ghép bắ t đầ u bằ ng “{”, kết thú c bằ ng “}”, giữ a
khố i là cá c lệnh thà nh phầ n tuâ n theo cấ u trú c tuầ n tự
S2;
Sau dấ u đó ng ngoặ c nhọ n khô ng cầ n dấ u “;” do C++ tự

biết đây là nơi kết thú c lệnh

10
Lệnh chọ n if
if (C) C: Điều kiện (Biểu thứ c logic)
S; S;: Mộ t lệnh, nếu muố n thự c hiện nhiều lệnh,
cầ n gó i chú ng và o thà nh lệnh ghép {}
Khi gặ p cấ u trú c if, máy sẽ kiểm tra điều kiện
C:
C = true, máy sẽ thự c hiện lệnh S;
C = false, máy khô ng thự c hiện lệnh S;
11
Lệnh chọ n if…else…
if (C) C: Điều kiện (Biểu thứ c logic)

S1; S1;, S2;: Mộ t lệnh, nếu muố n thự c hiện nhiều lệnh, cầ n gó i
chú ng và o thà nh lệnh ghép {}
else Khi gặ p cấ u trú c if…else…, máy sẽ kiểm tra điều kiện C:
S2; C = true, máy thự c hiện lệnh S1;
C = false, máy thự c hiện lệnh S2;

Nếu có nhiều cấ u trú c if…else lồ ng nhau, else luô n đượ c


gắ n vớ i if phía trên chưa có else gầ n nó nhấ t.

12
Giả i phương trình bậ c 2
Nhậ p và o 3 số thự c () và giả i phương trình:
Mô tả thuậ t toá n bằ ng ngô n ngữ tự nhiên
Chuyển ngô n ngữ tự nhiên thà nh chương trình
C++

13
Giả i phương trình bậ c 2
Nhậ p , và .
Tính
Nếu , thô ng bá o phương trình vô nghiệm
Nếu khô ng…
Nếu , đưa ra nghiệm kép
Nếu khô ng, thô ng bá o 2 nghiệm
14
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c, delta;
cout << "Cho a, b, c: "; cin >> a >> b >> c;
delta = b * b - 4 * a * c;
if (delta < 0) cout << "Vo nghiem!";
else
if (delta == 0) cout << "Nghiem kep x = " << -b / (2 * a);
else
{
cout << "x1 = " << (-b - sqrt(delta)) / (2 * a) << '\n';
cout << "x2 = " << (-b + sqrt(delta)) / (2 * a);
}
}
15
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double a, b, c, delta;
cout << "Cho a, b, c: "; cin >> a >> b >> c;
delta = b * b - 4 * a * c;
if (delta < 0) cout << "Vo nghiem!";
else
if (delta == 0) cout << "Nghiem kep x = " << -b / (2 * a);
else
cout << "x1 = " << (-b - sqrt(delta)) / (2 * a) << '\n'
<< "x2 = " << (-b + sqrt(delta)) / (2 * a);
}

16
Nhiều cấ u trú c if…else lồ ng nhau
Nhậ p và o số nguyên
Nếu là số chính phương thì thô ng bá o là số chính phương
Nếu là số â m thì thô ng bá o là số â m
Kiểm tra số là số chính phương:

Hoặ c

17
Chỉ ra chỗ sai
#include int main()
{
<iostream> int n;
cin >> n;
#include if (n >= 0)
<cmath> if (int(sqrt(n)) == sqrt(n))
cout << n << " la so chinh
using phuong";
namespace else
cout << n << " la so am";
std; }
18
Chữ a lỗ i
#include
int main()
{
<iostream> int n;
cin >> n;
#include if (n >= 0)
{
<cmath> if (int(sqrt(n)) == sqrt(n))

using }
cout << n << " la so chinh phuong";

namespace else
cout << n << " la so am";
std; }

19
Lệnh chọ n switch
switch(e)
{
e: Biểu thứ c kiểu đếm đượ c (số nguyên, ký tự , logic)
case k1: ki: hằ ng cù ng kiểu vớ i e
GS1; break;
case k2:
GSi: Mộ t nhó m lệnh
GS2; break; Khi gặ p lệnh switch, máy tính giá trị biểu thứ c e…

Nếu giá trị e bằ ng ki, máy sẽ thự c hiện nhó m lệnh GSi.
case kn:
GSn; break; Nếu giá trị e khô ng thuộ c nhó m hằ ng nà o, máy thự c hiện
default: nhó m lệnh GDefault, nếu khô ng có phầ n GDefault, máy bỏ qua.
GDefault;
break: Từ khó a củ a C++
}

20
Nă m can chi
10 can: Giá p, Ấ t, Bính, Đinh, Mậ u, Kỷ, Canh, Tâ n, Nhâ m, Quý
12 chi: Tí, Sử u, Dầ n, Mã o, Thìn, Tị, Ngọ , Mù i, Thâ n, Dậ u,
Tuấ t, Hợ i
Xá c định nă m can chi ứ ng vớ i nă m dương lịch
2000 = Canh Thìn
2015 = Ấ t Mù i

21
Giá p Ất Bính Tí Sử u Dầ n Mã o

Quý Đinh Hợ i Thìn

Nhâ m Mậ u Tuấ t Tỵ

Tâ n Canh Kỷ Dậ u Thâ n Mù i Ngọ

2019
2018
2017
2016
22
Nă m can chi
Nhậ p và o mộ t nă m y (dương lịch)
Xá c định nă m can chi tương ứ ng
y % 10 4 5 6 7 8 9 0 1 2 3
Can Giá p Ất Bính Đinh Mậ u Kỷ Canh Tâ n Nhâ m Quý

y % 12 4 5 6 7 8 9 10 11 0 1 2 3
Chi Tí Sử u Dầ n Mã o Thìn Tỵ Ngọ Mù i Thâ n Dậ u Tuấ t Hợ i

23
#include <iostream> switch (y % 12)
using namespace std; {
int main() case 4: cout << "Ti"; break;
{
case 5: cout << "Suu"; break;
int y;
case 6: cout << "Dan"; break;
cout << "Year: "; cin >> y;
switch (y % 10) case 7: cout << "Mao"; break;
{ case 8: cout << "Thin"; break;
case 4: cout << "Giap "; break; case 9: cout << "Ty"; break;
case 5: cout << "At "; break; case 10: cout << "Ngo"; break;
case 6: cout << "Binh "; break; case 11: cout << "Mui"; break;
case 7: cout << "Dinh "; break; case 0: cout << "Than"; break;
case 8: cout << "Mau "; break; case 1: cout << "Dau"; break;
case 9: cout << "Ky "; break;
case 2: cout << "Tuat"; break;
case 0: cout << "Canh "; break;
case 3: cout << "Hoi"; break;
case 1: cout << "Tan "; break;
case 2: cout << "Nham "; break; }
case 3: cout << "Quy "; break; }
}
24
Tính thứ trong tuầ n
Nhậ p và o ngày (d), thá ng (m), nă m(y)
Cho biết ngày d/m/y là thứ mấy?
Cô ng thứ c Zeller…

25
Thá ng 1 và 2 coi như thá ng 13 và 14 nă m trướ c if (m < 3)
18/2/2010 = 18/14/2009 {
Mỗ i thế kỷ gồ m 100 nă m, cá c nă m trong thế kỷ m += 12;
đá nh số từ 0 tớ i 99: Thế kỷ 0: [0…99], Thế kỷ 1: --y;
[100…199], …, Thế kỷ 20: [2000, 2099] }
: Số hiệu thế kỷ c = y / 100;
: Số hiệu nă m trong thế kỷ k = y % 100;

0: Saturday, 1: Sunday, 2: Monday, …

26
#include <iostream> dow =
d +
using namespace std; 26 * (m + 1) / 10 +
int main() k + k / 4 +
{ c / 4 + 5 * c;
switch(dow % 7)
int d, m, y, c, k, dow; {
cout << "Date? d m y: "; case 0: cout << "Saturday"; break;
case 1: cout << "Sunday"; break;
cin >> d >> m >> y;
case 2: cout << "Monday"; break;
if (m < 3) case 3: cout << "Tuesday"; break;
{ case 4: cout << "Wednesday"; break;
case 5: cout << "Thursday"; break;
m += 12; --y;
case 6: cout << "Friday"; break;
} }
c = y / 100; }

k = y % 100;

27
Lệnh lặ p do…while…
do C: Điều kiện lặ p (Biểu thứ c logic)
S; S;: Mộ t lệnh, nếu muố n thự c hiện nhiều lệnh, phả i
while “gó i” cá c lệnh đó thà nh mộ t lệnh ghép {}
(C); Máy sẽ thự c hiện lệnh S và lặ p lạ i lệnh này chừ ng
nà o điều kiện C đú ng
Lệnh S sẽ đượ c thự c hiện ít nhấ t 1 lầ n (Điều kiện
lặ p C đượ c kiểm tra sau mỗ i lượ t lặ p)
28
Tá ch chữ số
Nhậ p và o mộ t số nguyên dương . Cho biết tổ ng cá c chữ số trong biểu diễn
thậ p phâ n củ a
Ý tưở ng
Khở i tạ o biến
Tá ch từ ng chữ số củ a , từ hà ng đơn vị lên, khi mỗ i chữ số đượ c tá ch ra, tă ng thêm
đơn vị.
Thuậ t toá n
Tá ch chữ số hà ng đơn vị:
Lặ p lạ i vớ i số cho tớ i khi
29
#include <iostream>
cin >> n; using namespace std;
int main()
sum = 0;
{
do int n, d, sum;
cin >> n;
{
sum = 0;
d = n % 10; do
{
n /= 10; d = n % 10;
sum += d; n /= 10;
sum += d;
} }
while (n != 0);
while (n != 0);
cout << sum;
cout << sum; }
30
cin >> n;
sum = 0;
𝑛=¿ 1 2 3 4

do
{ 𝑑=¿
d = n % 10;

n /= 10;
sum += d;
𝑠𝑢𝑚=¿ 0

}
while (n != 0);

cout << sum;


31
cin >> n;
sum = 0;
𝑛=¿ 1 2 3 4 4

do
{ 𝑑=¿
d = n % 10;

n /= 10;
sum += d;
𝑠𝑢𝑚=¿ 0
4

}
while (n != 0);

cout << sum;


32
cin >> n;
sum = 0;
𝑛=¿ 1 2 3 3

do
{ 𝑑=¿
d = n % 10;

n /= 10;
sum += d;
𝑠𝑢𝑚=¿ 4
7

}
while (n != 0);

cout << sum;


33
cin >> n;
sum = 0;
𝑛=¿ 1 2 2

do
{ 𝑑=¿
d = n % 10;

n /= 10;
sum += d;
𝑠𝑢𝑚=¿ 7
9

}
while (n != 0);

cout << sum;


34
cin >> n;
sum = 0;
𝑛=¿ 0
1 1

do
{ 𝑑=¿
d = n % 10;

n /= 10;
sum += d;
𝑠𝑢𝑚=¿ 10
9

}
while (n != 0);

cout << sum;


35
Thự c hiện chương trình nhiều lầ n
#include int main()
{
<iostream> char answer;
do
using {
namespace //Do something
cout << "Ban co muon lam tiep? C/K:
std; ";
cin >> answer;
}
while (answer == 'c' || answer == 'C');
}

36
Lệnh lặ p while
while C: Điều kiện lặ p (Biểu thứ c logic)

(C) S;: Mộ t lệnh


Máy sẽ thự c hiện lặ p đi lặ p lạ i lệnh S chừ ng
S; nà o điều kiện C đú ng
Nếu C sai ngay từ đầ u, lệnh S sẽ khô ng đượ c
thự c hiện (điều kiện lặ p C đượ c kiểm tra
trướ c mỗ i lượ t lặ p)
37
Thuậ t toá n Euclid
Nhậ p và o hai số tự nhiên khô ng đồ ng thờ i bằ ng 0.
Cho biết ướ c số chung lớ n nhấ t củ a và
Thuậ t toá n Euclid
Nhậ n và o
Lặ p chừ ng nà o
Tính
Thay bở i
Giá trị sau vò ng lặ p là USCLN củ a hai số ban đầ u.
38
#include <iostream>
using namespace std;
int main() 𝑎 76
{
int a, b, r;
cout << "a, b = "; cin >> a >> b;
cout << "GCD(" << a << ", " << b
<< ") = ";
𝑏 172
while (b != 0)
{
r = a % b; 𝑟
a = b;
b = r;
}
cout << a;
}
39
#include <iostream>
using namespace std;
int main() 𝑎 76
{
int a, b, r;
cout << "a, b = "; cin >> a >> b;
cout << "GCD(" << a << ", " << b
<< ") = ";
𝑏 172
while (b != 0)
{
r = a % b; 𝑟 76
a = b;
b = r;
}
cout << a;
}
40
#include <iostream>
using namespace std;
int main() 𝑎 172
{
int a, b, r;
cout << "a, b = "; cin >> a >> b;
cout << "GCD(" << a << ", " << b
<< ") = ";
𝑏 76
while (b != 0)
{
r = a % b; 𝑟 20
a = b;
b = r;
}
cout << a;
}
41
#include <iostream>
using namespace std;
int main() 𝑎 76
{
int a, b, r;
cout << "a, b = "; cin >> a >> b;
cout << "GCD(" << a << ", " << b
<< ") = ";
𝑏 20
while (b != 0)
{
r = a % b; 𝑟 16
a = b;
b = r;
}
cout << a;
}
42
#include <iostream>
using namespace std;
int main() 𝑎 20
{
int a, b, r;
cout << "a, b = "; cin >> a >> b;
cout << "GCD(" << a << ", " << b
<< ") = ";
𝑏 16
while (b != 0)
{
r = a % b; 𝑟 4
a = b;
b = r;
}
cout << a;
}
43
#include <iostream>
using namespace std;
int main() 𝑎 16
{
int a, b, r;
cout << "a, b = "; cin >> a >> b;
cout << "GCD(" << a << ", " << b
<< ") = ";
𝑏 4
while (b != 0)
{
r = a % b; 𝑟 0
a = b;
b = r;
} a, b = 76 172
cout << a; GCD(76, 172) = 4
}
44
Đọ c và phâ n tích chương trình sau
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
while (a != b)
if (a > b) a -= b;
else b -= a;
cout << a;
}
45
Lệnh lặ p for
for (I; C; L) I: Mộ t biểu thứ c khở i tạ o
S; C: Điều kiện lặ p
S;: Mộ t lệnh
Tương đương với cấu trúc:
L: Biểu thứ c sẽ đượ c chạy sau mỗ i bướ c

I; thự c thi lệnh S


while (C) Cô ng dụ ng:
{ Máy chạy biểu thứ c khở i tạ o I

S; Tạ i mỗ i bướ c nếu điều kiện C là true, máy thự c


hiện lệnh S và sau đó là biểu thứ c L
L;
Nếu điều kiện C là false, máy thoá t vò ng lặ p for
}
46
Ví dụ : In ra cá c số có 2 chữ số
#include <iostream>
using namespace std;
int main()
{
int i;
for (i = 10; i < 100; ++i)
cout << i << " ";
}
47
Tính giai thừ a
Nhậ p và o mộ t số tự nhiên
Tính
Thuậ t toá n:
Khở i tạ o mộ t biến
Vớ i mỗ i , nhâ n lên lầ n.
In ra
48
#include <iostream> #include <iostream>
using namespace std; using namespace std;
int main() int main()
{ {
int i, n; int n;
long long f = 1; long long f = 1;
cout << "n = "; cin >> cout << "n = "; cin >>
n; n;
cout << n << "! = "; cout << n << "! = ";
for (i = 1; i <= n; ++i) for (; n > 0; --n)
f *= i; f *= n;
cout << f; cout << f;
} }
49
Bả ng số
Nhậ p và o mộ t số nguyên dương . In ra bả ng cá c số nguyên từ 1 tớ i
số trên mộ t dò ng
In từ ng hà ng, mỗ i hà ng in từ trá i qua phả i
Ví dụ
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
50
Đặ t khuô n dạ ng in số nguyên
#include <iostream>
#include <iomanip> #include <iomanip>
using namespace std;
std::cout << std::setw(k)
int main()
Đặ t khuô n dạ ng in vớ i k ô {
Chỉ tá c độ ng lên lệnh thà nh phầ n ngay cout << setw(6) << 12 << endl;
cout << setw(6) << 123 << endl;
tiếp theo đưa ra thiết bị xuấ t chuẩ n. cout << setw(6) << 123456 << endl;
Nếu thà nh phầ n in ra cầ n ô , máy điền cout << setw(6) << 123456789 << endl;
}
thêm khoả ng trố ng phía trướ c cho đủ k ô 12
Nếu thà nh phầ n in ra cầ n ô , máy tự 123
123456
độ ng dà nh đủ chỗ
123456789

51
Bả ng số
Nhậ p và o mộ t số nguyên dương . In ra bả ng cá c số nguyên từ 1 tớ i
số trên mộ t dò ng
In từ ng hà ng, mỗ i hà ng in từ trá i qua phả i
Ví dụ
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
52
int i, j, n, c = 0; n = 6
cout << "n = "; 1 2 3 4 5 6
cin >> n; 7 8 9 10 11 12
for (i = 1; i <= n; ++i) 13 14 15 16 17 18
{ 19 20 21 22 23 24
//in ra hàng i 25 26 27 28 29 30
for (j = 1; j <= n; +
31 32 33 34 35 36
+j)
cout << setw(3) <<
++c;
cout << '\n';
} 53
Lệnh nhảy goto
Chọ n mộ t tên nhã n (chẳ ng hạ n lab)
Dù ng nhã n lab và dấ u “:” đá nh dấ u vị trí trướ c mộ t lệnh trong
chương trình.
Lệnh
goto lab;
Khi gặ p lệnh goto, máy sẽ nhảy tớ i vị trí đá nh dấ u trong bở i nhã n
lab và thự c hiện cá c lệnh từ vị trí đó .
54
Tính tổ ng cá c chữ số
Viết chương trình nhậ p và o số nguyên dương
Tính tổ ng cá c chữ số trong biểu diễn thậ p
phâ n củ a

55
Tính tổ ng cá c chữ số
Khở i tạ o biến
Bướ c 1: Tá ch chữ số hà ng đơn vị củ a

Bướ c 2: Cắ t bỏ chữ số hà ng đơn vị khỏ i

Bướ c 3: Cộ ng dồ n và o

Nếu , lặ p lạ i từ bướ c 1
56
int n, d, sum(0); int n, d, sum(0);
cin >> n; cin >> n;
do
lab:
{
d = n % 10;
d = n % 10;
n /= 10;
n /= 10;
sum += d; sum += d;
} if (n > 0) goto
while (n > 0); lab;
cout << sum; cout << sum;
57
Trá nh dù ng lệnh nhảy
Sứ c mạ nh củ a lệnh nhảy: Tấ t cả cá c cấ u trú c tuầ n tự , chọ n, lặ p
đều đượ c dịch thà nh cá c lệnh nhảy trong mã máy
Nhượ c điểm củ a goto: Phá vỡ tính cấ u trú c củ a chương trình
Định lý Bö hm-Jacopini: Mọ i quá trình tính toá n trên máy tính
đều có thể cà i đặ t bằ ng cấ u trú c tuầ n tự , rẽ nhá nh (chọ n) và lặ p
Kết luậ n: Cố gắ ng trá nh dù ng GOTO

58
Lệnh break và continue
Lệnh break;
Khi break đượ c thự c hiện trong mộ t vò ng lặ p, vò ng lặ p đó sẽ ngưng ngay
Bả n chấ t: goto tớ i vị trí sau vò ng lặ p
Lệnh continue;
Khi continue đượ c thự c hiện trong mộ t vò ng lặ p, toà n bộ lệnh trong vò ng
lặ p phía sau continue sẽ bị bỏ qua, nhảy đến vị trí kiểm tra điều kiện lặ p
Bả n chấ t: goto tớ i vị trí kiểm tra điều kiện lặ p

59
Ví dụ
Viết mộ t chương trình lặ p
Cho ngườ i dù ng nhậ p và o hai số nguyên
Nếu và , in ra ướ c số chung lớ n nhấ t củ a chú ng
Nếu , dừ ng chương trình

60
#include <iostream>
using namespace std;
int main()
{
int a, b, r;
do
{
cout << "a, b (0 0 to quit) = "; cin >> a >> b;
if (a == 0 && b== 0) break;
cout << "GCD(" << a << ", " << b << ") = ";
while (b != 0)
{
r = a % b; a = b; b = r;
}
cout << a << endl;
} while (true);
}
61
Ví dụ
Viết mộ t chương trình lặ p
Cho ngườ i dù ng nhậ p và o số thự c
Nếu thô ng bá o dữ liệu sai
Nếu , in ra độ dà i cạ nh hình vuô ng diện tích bằ ng (in
ra )
Nếu , thoá t.
62
double s;
do
{
cout << "s = "; cin >> s;
if (s == 0) break;
if (s < 0)
{
cout << "Wrong number!" << endl;
continue;
}
cout << sqrt(s) << endl;
}
while (true);
63
Khi nà o nên dù ng goto
Lệnh break chỉ dừ ng vò ng lặ p chứ a nó
Nếu có nhiều vò ng lặ p lồ ng nhau và muố n
dừ ng tấ t cả chú ng?
Giả i phá p: goto tớ i vị trí phía sau cá c vò ng lặ p

64
Bả ng số
Nhậ p và o mộ t số nguyên dương và số nguyên dương . In ra bả ng cá c số nguyên
từ 1 tớ i
số trên mộ t dò ng
In từ ng hà ng, mỗ i hà ng in từ trá i qua phả i
Nếu đã in tớ i giá trị thì khô ng đượ c in nữ a
Ví dụ ,
1 2 3 4
5 6 7 8
9 10
65
int i, j, n, L, c = 0;
n, L = 6 20
cout << "n, L = "; cin >> n
>> L; 1 2 3 4
for (i = 1; i <= n; ++i) 5 6
{
for (j = 1; j <= n; ++j) 7 8 9 10
{ 11 12
cout << setw(4) << +
+c;
13 14 15 16
if (c == L) goto 17 18
done;
19 20
}
cout << '\n';
66

You might also like