1. #include <iostream>
  2. #include <string>
  3. #include<cstring>
  4.  
  5. using namespace std;
  6.  
  7. void showStr(const char * str, int & n)
  8. {
  9. cout << str << endl;
  10.  
  11. if (n > 0)
  12. {
  13. showStr(str, --n);
  14. }
  15. }
  16. int test8_1()
  17. {
  18. char str[] = "hello cat";
  19. int n = 2;
  20. showStr(str, n);
  21. return 0;
  22. }
  23.  
  24. int test8_2()
  25. {
  26.  
  27. return 0;
  28. }
  29.  
  30. void Up(string & str)
  31. {
  32. int i = 0;
  33. while (str[i])
  34. {
  35. str[i] = toupper(str[i]);
  36. i++;
  37. }
  38.  
  39. cout << str << endl;
  40.  
  41. }
  42.  
  43. int test8_3()
  44. {
  45. string str;
  46.  
  47. cout << "Enter a string (q to quit): ";
  48. getline(cin, str);
  49.  
  50. while (str != "q")
  51. {
  52. Up(str);
  53.  
  54. cout << "Enter next string:(q to quit):";
  55. getline(cin, str);
  56. }
  57. cout << "bye.\n";
  58.  
  59. return 0;
  60. }
  61.  
  62. struct stringy{
  63. char *str;
  64. int ct;
  65. };
  66.  
  67. void set(stringy & beany, const char *test)
  68. {
  69. beany.ct = strlen(test);
  70. beany.str = new char[beany.ct +1];
  71. int i = 0;
  72. for (i = 0; test[i]; i++)
  73. {
  74. beany.str[i] = test[i];
  75. }
  76. beany.str[i] = 0;
  77. }
  78.  
  79. void show(const stringy beany, int n = 1)
  80. {
  81. for (int i = 1; i <= n; i++)
  82. {
  83. cout << beany.str << endl;
  84. cout << beany.ct << endl;
  85. }
  86. }
  87.  
  88. void show(const char *testing, int n = 1)
  89. {
  90. for (int i = 1; i <= n; i++)
  91. {
  92. cout << testing << endl;
  93. }
  94. }
  95. int test8_4()
  96. {
  97. stringy beany;
  98. char testing[] = "Hello cat.";
  99.  
  100. set(beany, testing);
  101. show(beany);
  102. cout << endl;
  103. show(beany, 2);
  104. testing[0] = 'D';
  105. testing[1] = 'u';
  106. show(testing);
  107.  
  108. show(testing, 3);
  109. show("Done!");
  110. return 0;
  111. }
  112.  
  113. template <typename T>
  114. T Max5(T arr[])
  115. {
  116. int i = 0;
  117. T max = arr[0];
  118. for (i = 1; i < 5; i++)
  119. {
  120. if (max < arr[i])
  121. {
  122. max = arr[i];
  123. }
  124. }
  125.  
  126. return max;
  127.  
  128. }
  129. int test8_5()
  130. {
  131. int a[5] = { 2, 3, 1, 5, 4 };
  132.  
  133. cout << Max5(a);
  134.  
  135. double b[5] = { 6, 8, 5, 9, 6 };
  136.  
  137. cout << endl << Max5(b);
  138. return 0;
  139. }
  140.  
  141. template <typename T>
  142. T maxn(T arr[], int n)
  143. {
  144. int i = 0;
  145. T max = arr[0];
  146. for (i = 1; i < n; i++)
  147. {
  148. if (max < arr[i])
  149. {
  150. max = arr[i];
  151. }
  152. }
  153. return max;
  154. }
  155.  
  156. template <> char * maxn<char *>(char * arr[], int n)
  157. {
  158. int i = 0;
  159. int max = strlen(arr[0]);
  160. int maxk = 0;
  161.  
  162. for (i = 1; i < n; i++)
  163. {
  164. if (max < strlen(arr[i]))
  165. {
  166. max = strlen(arr[i]);
  167. maxk = i;
  168. }
  169.  
  170. }
  171.  
  172. return arr[maxk];
  173. }
  174. int test8_6()
  175. {
  176. int a[6] = { 2, 3, 1, 5, 6, 4 };
  177. double b[4] = { 9, 6, 7, 4 };
  178.  
  179. char * strarr[3] = { "Hello cat!", "boat", "miao wu" };
  180.  
  181. cout << maxn(a, 6) << endl;
  182. cout << maxn(b, 4) << endl;
  183. cout << maxn(strarr, 3) << endl;
  184. return 0;
  185. }
  186.  
  187. template <typename T>
  188. void ShowArray(T arr[], int n);
  189.  
  190. template <typename T>
  191. void ShowArray(T * arr[], int n);
  192.  
  193. struct debts
  194. {
  195. char name[50];
  196. double amount;
  197. };
  198.  
  199. template <typename T>
  200. void ShowArray(T arr[], int n)
  201. {
  202. cout << "template A\n";
  203. for (int i = 0; i < n; i++)
  204. {
  205. cout << arr[i] << ' ';
  206. }
  207. cout << endl;
  208. }
  209.  
  210. template <typename T>
  211. void ShowArray(T *arr[], int n)
  212. {
  213. cout << "using template B\n";
  214. for (int i = 0; i < n; i++)
  215. {
  216. cout << *arr[i] << ' ';
  217. }
  218.  
  219. cout << endl;
  220. }
  221.  
  222. template <typename T>
  223. T SumArray(T arr[], int n)
  224. {
  225. T sum = 0;
  226. for (int i = 0; i < n; i++)
  227. {
  228. sum += arr[i];
  229. }
  230. return sum;
  231. }
  232.  
  233. template <typename T>
  234. T SumArray(T *arr[], int n)
  235. {
  236. T sum = 0;
  237. for (int i = 0; i < n;i++)
  238. {
  239. sum += *arr[i];
  240. }
  241. return sum;
  242. }
  243. int test8_7()
  244. {
  245. int things[6] = { 1, 2, 3, 4, 5, 6 };
  246.  
  247. struct debts mr_e[3] =
  248. {
  249. "Cat mioa", 10.1,
  250. "Dog Boat", 20.1,
  251. "Fish ni", 30.1
  252. };
  253. double *pd[3];
  254. for (int i = 0; i < 3; i++)
  255. {
  256. pd[i] = &mr_e[i].amount;
  257. }
  258.  
  259. ShowArray(things, 6);
  260.  
  261. ShowArray(pd, 3);
  262.  
  263. cout << SumArray(things, 6) << endl;
  264. cout <<SumArray(pd, 3) << endl;
  265. return 0;
  266. }
  267.  
  268. int main()
  269. {
  270. test8_7();
  271.  
  272. system("pause");
  273. return 0;
  274. }

  

C++ Primer Pluse_8_课后题的更多相关文章

  1. C++ Primer Pluse_7_课后题

    #include <iostream> using namespace std; double Sum2(double x, double y) { double sum = 0; if ...

  2. C++ Primer Pluse_6_课后题

    #include <iostream> #include <cctype> #include <array> #include <string> #in ...

  3. 玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)

    前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + ...

  4. 算法(JAVA)----两道小小课后题

    LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快的算法). 1.编写一个程序解决选择问题.令 ...

  5. 课后题2.87&2.86

    课后题2.86&2.87 单纯就是想加点分第十章的题目都被做过了就做下第二章的,正好复习一下前面学的知识,第二章给我剩下的题目也不多了,我就挑了这个题目. 2.86 考虑一个基于IEEE浮点格 ...

  6. c++面向对象程序设计 课后题 答案 谭浩强 第四章

    c++面向对象程序设计课后题答案 谭浩强 第四章 1: #include <iostream> using namespace std; class Complex {public: Co ...

  7. 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...

  8. 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案

    初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...

  9. Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解

    Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 第一章选择题 1.1 Java与面向对象程 ...

随机推荐

  1. BZOJ2080 : [Poi2010]Railway

    如果存在$k$使得$i<j<k$,且$a[k]<a[i]<a[j]$,那么$i$和$j$不能在一个栈中. 设$b[i]=\min(a[i..n])$,如果$b[j]<a[ ...

  2. 2016年AR行业十大热点事件汇总

    2016年即将接近尾声,增强现实在今年完成了里程碑式的跃进.无论是从新玩法的开发还是从大众接受度,以及行业巨头的青睐,无不证明这AR的无线潜力,故而,2016年算是AR的崛起之年. 纵观全年AR新闻事 ...

  3. hdu 1312 Red and Black

    Problem Description There is a rectangular room, covered with square tiles. Each tile is colored eit ...

  4. ACM: 限时训练题解-Epic Professor-水题

    Epic Professor   Dr. Bahosain works as a professor of Computer Science at HU (Hadramout    Universit ...

  5. linux下转换U盘文件系统

    打算在windows 7 下复制一个12G 的文件至U盘,无奈U盘为FAT32格式,最大支持移动4G 的文件,只能将U盘文件系统格式化为NTFS.windows 7系统出现问题,转化中总是出现错误.故 ...

  6. gerrit使用教程

      注:使用时把“user”替换为自己的账号,例如 ueapp: ssh://huang.fei@10.0.64.16:29418/jonet2_0_app_ueapp.git 新的环境下需要先注册g ...

  7. ADO.NET测试题

    第一部分: 新建一个数据库:ADO测试,包含下面两个数据表,使用代码创建,并保留创建的代码文本. 学生表Student: 编号(Code):nvarchar类型,不能为空,主键 姓名(Name):nv ...

  8. Odoo SSO 单点登录

    很多公司会有内部单点登录系统,采用Odoo系统的公司可能就有需要将Odoo接入公司内部的单点登录系统. 实现的思路很简单,由于每个公司的系统不一样,代码仅作示例说明. 首先,重写Odoo登录界面: & ...

  9. jquery中对动态生成的标签响应click事件(二)…与ajax交互使用

    <%@ page language="java" contentType="text/html; charset=GB18030" pageEncodin ...

  10. js 数组排序

    sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码顺序排列. 2.如果指 ...