B28
练习:阴影面积、大小写、后移字母
引入
章前总览 三道练习:正方形减去内切圆的阴影;小写变大写(ASCII 差 32);大写字母后移 4 位要用强制转换。
三道练习:
- 阴影:a*a - π*a*a/4
- 大小写:c1 = c - 32
- 后移:char(c+4)
1 练习1:求阴影部分的面积
边长为 a 的正方形内嵌直径为 a 的圆,求正方形减去圆的阴影面积。π 用 3.1415926,保留 2 位小数。
参考代码
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
int a;
cin >> a;
double pi = 3.1415926;
double ans = a * a - pi * a * a / 4;
cout << fixed << setprecision(2) << ans << endl;
return 0;
}
- 圆面积 = π·(a/2)² = π·a·a/4。
- 样例:10 → 21.46。
2 练习2:小写字母变大写
输入一个小写字母,输出对应大写。同一字母的大写 ASCII 比小写小 32。
参考代码
#include <iostream>
using namespace std;
int main() {
char c;
cin >> c;
char c1 = c - 32;
cout << c1 << endl;
return 0;
}
- 样例:y → Y。
- 若写
cout << c-32;,会输出整数(自动转成 int)。要字符请存回 char,或用char(c-32)。
3 练习3:输出后面第 4 个字母
输入大写字母 c(保证不是 WXYZ),输出字母表中它后面第 4 个字母。如 A → E。
参考代码
#include <iostream>
using namespace std;
int main() {
char c;
cin >> c;
cout << char(c + 4) << endl;
return 0;
}
- 答案就是
c+4,但直接cout<<c+4会打印整数。 - 必须强制转成 char:
char(c+4)。
小结
字符运算后要想清楚“输出字符还是数字”:
char c1 = c - 32; // 结果仍当字符用
cout << char(c+4); // 强制转回字符再输出
cout << c-32; // 会输出整数!
✓
里程碑达成:
下一节系统学习自动类型转换与强制类型转换。