【C++ Primer Plus】编程练习答案——第7章
- 1 double ch7_1_harmonicaverage(double a, double b) {
- 2 return 2 / (1 / a + 1 / b);
- 3 }
- 4
- 5 void ch7_1() {
- 6 using namespace std;
- 7 double a{0}, b{0};
- 8 while (true) {
- 9 cout << "a: ";
- 10 cin >> a;
- 11 cout << "b: ";
- 12 cin >> b;
- 13 if (!(a&&b))
- 14 break;
- 15 cout << "harmonic average: " << ch7_1_harmonicaverage(a, b) << endl;
- 16 }
- 17 }
- 18
- 19 void ch7_2_in(double * arr, int & len, int max) {
- 20 using namespace std;
- 21 for (int i = 0; i < max; ++ i)
- 22 if (!(cin >> arr[i])) {
- 23 len = i;
- 24 break;
- 25 }
- 26 len = max;
- 27 }
- 28
- 29 void ch7_2_show(const double * arr, int len) {
- 30 using namespace std;
- 31 for (int i = 0; i < len; ++ i)
- 32 cout << arr[i] << " ";
- 33 cout << endl;
- 34 }
- 35
- 36 double ch7_2_mean(const double * arr, int len) {
- 37 double sum{0};
- 38 for (int i = 0; i < len; ++ i)
- 39 sum += arr[i];
- 40 return sum / len;
- 41 }
- 42
- 43 void ch7_2() {
- 44 using namespace std;
- 45 const int ArSize = 10;
- 46 double scores[ArSize]{0};
- 47 int len{0};
- 48 cout << "enter scores (max 10, nan to quit)" << endl;
- 49 ch7_2_in(scores, len, ArSize);
- 50 cout << "scores: ";
- 51 ch7_2_show(scores, len);
- 52 cout << "mean: " << ch7_2_mean(scores, len) << endl;
- 53 }
- 54
- 55 void ch7_3_show(box b) {
- 56 using namespace std;
- 57 cout << "box: maker: " << b.maker << " height: " << b.height
- 58 << " width: " << b.width << " length: " << b.length
- 59 << " volume: " << b.volume << endl;
- 60 }
- 61
- 62 void ch7_3_setvolume(box * b) {
- 63 using namespace std;
- 64 b -> volume = b -> height * b -> width * b -> length;
- 65 cout << "box volume seted" << endl;
- 66 }
- 67
- 68 void ch7_3() {
- 69 using namespace std;
- 70 box b{"xushun", 2, 3, 4};
- 71 ch7_3_show(b);
- 72 ch7_3_setvolume(&b);
- 73 ch7_3_show(b);
- 74 }
- 75
- 76 long double ch7_4_probability(unsigned int numbers, unsigned int picks) {
- 77 long double result = 1.0;
- 78 for (int i = numbers, j = picks; j; -- i, -- j)
- 79 result = result * i /j;
- 80 return 1 / result;
- 81 }
- 82
- 83 void ch7_4() {
- 84 using namespace std;
- 85 long double r = ch7_4_probability(47, 5) * ch7_4_probability(27, 1);
- 86 cout << "r = " << r << endl;
- 87 }
- 88
- 89 unsigned long long ch7_5_factorial(unsigned long long num) {
- 90 if (num == 0)
- 91 return 1;
- 92 else
- 93 return num * ch7_5_factorial(num - 1);
- 94 }
- 95
- 96 void ch7_5() {
- 97 using namespace std;
- 98 unsigned long long num{0};
- 99 cout << "enter num to get factorial (nan to quit)" << endl;
- 100 while (true) {
- 101 cout << "num: ";
- 102 if (!(cin >> num))
- 103 break;
- 104 cout << "factorial: " << ch7_5_factorial(num) << endl;
- 105 }
- 106 }
- 107
- 108 unsigned int ch7_6_fillarray(double * arr, unsigned int max) {
- 109 using namespace std;
- 110 int i{0};
- 111 for (i = 0; i < max; ++ i) {
- 112 cout << "#" << i << ": ";
- 113 if (!(cin >> arr[i]))
- 114 break;
- 115 }
- 116 return i;
- 117 }
- 118
- 119 void ch7_6_showarray(const double * arr, unsigned int len) {
- 120 using namespace std;
- 121 cout << "array: ";
- 122 for (int i = 0; i < len; ++ i)
- 123 cout << arr[i] << " ";
- 124 cout << endl;
- 125 }
- 126
- 127 void ch7_6_reversearray(double * arr, unsigned int len) {
- 128 double temp{0};
- 129 for (int i = 0; i < len / 2; ++ i) {
- 130 temp = arr[i];
- 131 arr[i] = arr[len - i - 1];
- 132 arr[len - i - 1] = temp;
- 133 }
- 134 }
- 135
- 136 void ch7_6() {
- 137 using namespace std;
- 138 const unsigned int max = 100;
- 139 double arr[max]{0};
- 140 unsigned int len{0};
- 141 cout << "enter array (nan to quit)" << endl;
- 142 len = ch7_6_fillarray(arr, max);
- 143 cout << "array" << endl;
- 144 ch7_6_showarray(arr, len);
- 145 cout << "reverse array" << endl;
- 146 ch7_6_reversearray(arr, len);
- 147 ch7_6_showarray(arr, len);
- 148 cout << "reverse array except 1 and len" << endl;
- 149 ch7_6_reversearray(arr + 1, len - 2);
- 150 ch7_6_showarray(arr, len);
- 151 }
- 152
- 153 double * ch7_7_fillarray(double * arr, unsigned int max) {
- 154 using namespace std;
- 155 for (int i = 0; i < max; ++ i) {
- 156 cout << "#" << i << ": ";
- 157 if (!(cin >> arr[i]))
- 158 return arr + i;
- 159 }
- 160 return arr + max - 1;
- 161 }
- 162
- 163 void ch7_7_showarray(const double * arr, double * end) {
- 164 using namespace std;
- 165 cout << "array: ";
- 166 while (arr != end) {
- 167 cout << *arr << " ";
- 168 ++ arr;
- 169 }
- 170 cout << endl;
- 171 }
- 172
- 173 void ch7_7_revalue(double * arr, double * end, double factor) {
- 174 while (arr != end) {
- 175 *arr *= factor;
- 176 ++ arr;
- 177 }
- 178 }
- 179
- 180 void ch7_7() {
- 181 using namespace std;
- 182 const unsigned int max = 100;
- 183 double arr[100]{0};
- 184 double * end = arr;
- 185 double factor{1};
- 186 cout << "enter array (nan to quit)" << endl;
- 187 end = ch7_7_fillarray(arr, max);
- 188 cout << "array" << endl;
- 189 ch7_7_showarray(arr, end);
- 190 cout << "enter factor: ";
- 191 cin.clear();cin.get();
- 192 while (!(cin >> factor)) {
- 193 cin.clear();
- 194 while (cin.get() != '\n')
- 195 continue;
- 196 cout << "factor must be a number: ";
- 197 }
- 198 ch7_7_revalue(arr, end ,factor);
- 199 ch7_7_showarray(arr, end);
- 200 }
- 201
- 202 void ch7_8_fill(double * arr, unsigned int n) {
- 203 using namespace std;
- 204 cout << "enter expenses for 4 seasons" << endl;
- 205 for (int i = 0; i < n; ++ i) {
- 206 while (!(cin >> arr[i])) {
- 207 cin.clear();
- 208 while (cin.get() != '\n')
- 209 continue;
- 210 cout << "must number: ";
- 211 }
- 212 }
- 213 }
- 214
- 215 void ch7_8_show(const double * arr, unsigned int n) {
- 216 using namespace std;
- 217 for (int i = 0; i < n; ++ i)
- 218 cout << arr[i] << " ";
- 219 cout << endl;
- 220 }
- 221
- 222 void ch7_8() {
- 223 using namespace std;
- 224 const unsigned int snum = 4;
- 225 const char * SEASONSNAME[] = {"Spring", "Summer", "Fall", "Winter"};
- 226 double expenses[snum]{0};
- 227 ch7_8_fill(expenses, snum);
- 228 ch7_8_show(expenses, snum);
- 229 }
- 230
- 231 void ch7_9() {
- 232 using namespace std;
- 233 // 题目太长不看 o.o
- 234 }
- 235
- 236 double ch7_10_calculate(double x, double y, double (* pf)(double, double)) {
- 237 return pf(x, y);
- 238 }
- 239
- 240 double ch7_10_add(double x, double y) {
- 241 return x + y;
- 242 }
- 243
- 244 double ch7_10_mul(double x, double y) {
- 245 return x * y;
- 246 }
- 247
- 248 void ch7_10() {
- 249 using namespace std;
- 250 double x{0}, y{0};
- 251 cout << "enter two double" << endl;
- 252 cout << "x: ";
- 253 while (!(cin >> x)) {
- 254 cin.clear();
- 255 while (cin.get() != '\n')
- 256 continue;
- 257 cout << "must a double: ";
- 258 }
- 259 cout << "y: ";
- 260 while (!(cin >> y)) {
- 261 cin.clear();
- 262 while (cin.get() != '\n')
- 263 continue;
- 264 cout << "must a double: ";
- 265 }
- 266 cout << "x + y == " << ch7_10_calculate(x, y, ch7_10_add) << endl;
- 267 cout << "x * y == " << ch7_10_calculate(x, y, ch7_10_mul) << endl;
- 268 }
【C++ Primer Plus】编程练习答案——第7章的更多相关文章
- 【C++ Primer Plus】编程练习答案——第12章
1 // chapter12_1_cow.h 2 3 4 #ifndef LEARN_CPP_CHAPTER12_1_COW_H 5 #define LEARN_CPP_CHAPTER12_1_COW ...
- 【C++ Primer Plus】编程练习答案——第11章 (待更新)
最近开学,事情较多,过两天更新...
- 【C++ Primer Plus】编程练习答案——第10章
1 // chapter10_1_account.h 2 3 #ifndef LEARN_CPP_CHAPTER10_1_ACCOUNT_H 4 #define LEARN_CPP_CHAPTER10 ...
- 【C++ Primer Plus】编程练习答案——第9章
1 // chapter09_golf.h 2 3 #ifndef LEARN_CPP_CHAPTER09_GOLF_H 4 #define LEARN_CPP_CHAPTER09_GOLF_H 5 ...
- 【C++ Primer Plus】编程练习答案——第8章
1 void ch8_1_print(const std::string & str, int n = 0 ) { 2 using namespace std; 3 static int fl ...
- 【C++ Primer Plus】编程练习答案——第6章
1 void ch6_1() { 2 using namespace std; 3 char ch; 4 while ((ch = cin.get()) != '@') { 5 if (isdigit ...
- 【C++ Primer Plus】编程练习答案——第5章
1 void ch5_1() { 2 using namespace std; 3 int small, big, sum{0}; 4 cout << "enter small ...
- 【C++ Primer Plus】编程练习答案——第4章
1 void ch4_1() { 2 using namespace std; 3 string fname, lname; 4 char grade; 5 unsigned int age; 6 c ...
- 【C++ Primer Plus】编程练习答案——第3章
1 void ch3_1() { 2 using namespace std; 3 unsigned int factor = 12; 4 unsigned int inch, feet; 5 cou ...
随机推荐
- jsoup的Element类
一.简介 该类是Node的直接子类,同样实现了可克隆接口.类声明:public class Element extends Node 它表示由一个标签名,多个属性和子节点组成的html元素.从这个元素 ...
- WPF 中的 经典的ModelView 通知页面更新 UI
view model ------------------------------------------------------------------------------ using HPCo ...
- Flink中的算子操作
一.Connect DataStream,DataStream -> ConnectedStream,连接两个保持他们类型的数据流,两个数据流被Connect之后,只是被放在了同一个流中,内部 ...
- 笔记本+ubuntu18.04 关闭触摸板touchpad
方法1: Settings -> Devices -> Mouse&Touchpad -> Touchpad OFF 方法2: 终端运行如下命令 touchpad off: ...
- BUUCTF-[CISCN2019 华北赛区 Day1 Web5]CyberPunk
BUUCTF-[CISCN2019 华北赛区 Day1 Web5]CyberPunk 看题 看源码有提示?file=? 文件包含漏洞,可以利用这个漏洞读取源码. 分析 index.php?file=p ...
- 存储系统管理(二)——Linux系统的swap分区、磁盘加密、磁盘阵列
磁盘驱动器上的空间 , 用作当前未使用部分内存的溢出.这样 , 系统就能在主内存中留出空间用于储存当前正在处理的数据 , 并在系统面临主内存空间不足的风险时提供应急溢出. swap分区的建立: fdi ...
- vue 引入 tcplayer,并且实现视频点播,腾讯点播
这篇文章仅用于上传到 腾讯的视频点播,上传到腾讯视频请看上一篇文章,话不多说,直接上代码 <template> <div> <video :id="tcPlay ...
- ICCV2021 | MicroNet:以极低的 FLOPs 改进图像识别
前言:这篇论文旨在以极低的计算成本解决性能大幅下降的问题.提出了微分解卷积,将卷积矩阵分解为低秩矩阵,将稀疏连接整合到卷积中.提出了一个新的动态激活函数-- Dynamic Shift Max,通过 ...
- AQS快速入门
一.模板方法模式 父子类多态,父类中用一个方法调用执行所有所需要的方法: 父类: 子类: 主线程执行时候调用父类的模板方法: 二.AQS思想 sync都是独占锁,lock显示锁也是,只有读写锁是共享锁 ...
- jdbcTemplate快速入门
一. c3p0和dbcp区别 二.导包 hibernate通过映射自动创建表: 三.代码实现