C++ Primer Pluse_8_课后题
- #include <iostream>
- #include <string>
- #include<cstring>
- using namespace std;
- void showStr(const char * str, int & n)
- {
- cout << str << endl;
- if (n > 0)
- {
- showStr(str, --n);
- }
- }
- int test8_1()
- {
- char str[] = "hello cat";
- int n = 2;
- showStr(str, n);
- return 0;
- }
- int test8_2()
- {
- return 0;
- }
- void Up(string & str)
- {
- int i = 0;
- while (str[i])
- {
- str[i] = toupper(str[i]);
- i++;
- }
- cout << str << endl;
- }
- int test8_3()
- {
- string str;
- cout << "Enter a string (q to quit): ";
- getline(cin, str);
- while (str != "q")
- {
- Up(str);
- cout << "Enter next string:(q to quit):";
- getline(cin, str);
- }
- cout << "bye.\n";
- return 0;
- }
- struct stringy{
- char *str;
- int ct;
- };
- void set(stringy & beany, const char *test)
- {
- beany.ct = strlen(test);
- beany.str = new char[beany.ct +1];
- int i = 0;
- for (i = 0; test[i]; i++)
- {
- beany.str[i] = test[i];
- }
- beany.str[i] = 0;
- }
- void show(const stringy beany, int n = 1)
- {
- for (int i = 1; i <= n; i++)
- {
- cout << beany.str << endl;
- cout << beany.ct << endl;
- }
- }
- void show(const char *testing, int n = 1)
- {
- for (int i = 1; i <= n; i++)
- {
- cout << testing << endl;
- }
- }
- int test8_4()
- {
- stringy beany;
- char testing[] = "Hello cat.";
- set(beany, testing);
- show(beany);
- cout << endl;
- show(beany, 2);
- testing[0] = 'D';
- testing[1] = 'u';
- show(testing);
- show(testing, 3);
- show("Done!");
- return 0;
- }
- template <typename T>
- T Max5(T arr[])
- {
- int i = 0;
- T max = arr[0];
- for (i = 1; i < 5; i++)
- {
- if (max < arr[i])
- {
- max = arr[i];
- }
- }
- return max;
- }
- int test8_5()
- {
- int a[5] = { 2, 3, 1, 5, 4 };
- cout << Max5(a);
- double b[5] = { 6, 8, 5, 9, 6 };
- cout << endl << Max5(b);
- return 0;
- }
- template <typename T>
- T maxn(T arr[], int n)
- {
- int i = 0;
- T max = arr[0];
- for (i = 1; i < n; i++)
- {
- if (max < arr[i])
- {
- max = arr[i];
- }
- }
- return max;
- }
- template <> char * maxn<char *>(char * arr[], int n)
- {
- int i = 0;
- int max = strlen(arr[0]);
- int maxk = 0;
- for (i = 1; i < n; i++)
- {
- if (max < strlen(arr[i]))
- {
- max = strlen(arr[i]);
- maxk = i;
- }
- }
- return arr[maxk];
- }
- int test8_6()
- {
- int a[6] = { 2, 3, 1, 5, 6, 4 };
- double b[4] = { 9, 6, 7, 4 };
- char * strarr[3] = { "Hello cat!", "boat", "miao wu" };
- cout << maxn(a, 6) << endl;
- cout << maxn(b, 4) << endl;
- cout << maxn(strarr, 3) << endl;
- return 0;
- }
- template <typename T>
- void ShowArray(T arr[], int n);
- template <typename T>
- void ShowArray(T * arr[], int n);
- struct debts
- {
- char name[50];
- double amount;
- };
- template <typename T>
- void ShowArray(T arr[], int n)
- {
- cout << "template A\n";
- for (int i = 0; i < n; i++)
- {
- cout << arr[i] << ' ';
- }
- cout << endl;
- }
- template <typename T>
- void ShowArray(T *arr[], int n)
- {
- cout << "using template B\n";
- for (int i = 0; i < n; i++)
- {
- cout << *arr[i] << ' ';
- }
- cout << endl;
- }
- template <typename T>
- T SumArray(T arr[], int n)
- {
- T sum = 0;
- for (int i = 0; i < n; i++)
- {
- sum += arr[i];
- }
- return sum;
- }
- template <typename T>
- T SumArray(T *arr[], int n)
- {
- T sum = 0;
- for (int i = 0; i < n;i++)
- {
- sum += *arr[i];
- }
- return sum;
- }
- int test8_7()
- {
- int things[6] = { 1, 2, 3, 4, 5, 6 };
- struct debts mr_e[3] =
- {
- "Cat mioa", 10.1,
- "Dog Boat", 20.1,
- "Fish ni", 30.1
- };
- double *pd[3];
- for (int i = 0; i < 3; i++)
- {
- pd[i] = &mr_e[i].amount;
- }
- ShowArray(things, 6);
- ShowArray(pd, 3);
- cout << SumArray(things, 6) << endl;
- cout <<SumArray(pd, 3) << endl;
- return 0;
- }
- int main()
- {
- test8_7();
- system("pause");
- return 0;
- }
C++ Primer Pluse_8_课后题的更多相关文章
- C++ Primer Pluse_7_课后题
#include <iostream> using namespace std; double Sum2(double x, double y) { double sum = 0; if ...
- C++ Primer Pluse_6_课后题
#include <iostream> #include <cctype> #include <array> #include <string> #in ...
- 玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)
前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + ...
- 算法(JAVA)----两道小小课后题
LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快的算法). 1.编写一个程序解决选择问题.令 ...
- 课后题2.87&2.86
课后题2.86&2.87 单纯就是想加点分第十章的题目都被做过了就做下第二章的,正好复习一下前面学的知识,第二章给我剩下的题目也不多了,我就挑了这个题目. 2.86 考虑一个基于IEEE浮点格 ...
- c++面向对象程序设计 课后题 答案 谭浩强 第四章
c++面向对象程序设计课后题答案 谭浩强 第四章 1: #include <iostream> using namespace std; class Complex {public: Co ...
- 学习参考《零基础入门学习Python》电子书PDF+笔记+课后题及答案
国内编写的关于python入门的书,初学者可以看看. 参考: <零基础入门学习Python>电子书PDF+笔记+课后题及答案 Python3入门必备; 小甲鱼手把手教授Python; 包含 ...
- 学习《零基础入门学习Python》电子书PDF+笔记+课后题及答案
初学python入门建议学习<零基础入门学习Python>.适合新手入门,很简单很易懂.前一半将语法,后一半讲了实际的应用. Python3入门必备,小甲鱼手把手教授Python,包含电子 ...
- Java程序设计(2021春)——第一章课后题(选择题+编程题)答案与详解
Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 目录 Java程序设计(2021春)--第一章课后题(选择题+编程题)答案与详解 第一章选择题 1.1 Java与面向对象程 ...
随机推荐
- BZOJ2080 : [Poi2010]Railway
如果存在$k$使得$i<j<k$,且$a[k]<a[i]<a[j]$,那么$i$和$j$不能在一个栈中. 设$b[i]=\min(a[i..n])$,如果$b[j]<a[ ...
- 2016年AR行业十大热点事件汇总
2016年即将接近尾声,增强现实在今年完成了里程碑式的跃进.无论是从新玩法的开发还是从大众接受度,以及行业巨头的青睐,无不证明这AR的无线潜力,故而,2016年算是AR的崛起之年. 纵观全年AR新闻事 ...
- hdu 1312 Red and Black
Problem Description There is a rectangular room, covered with square tiles. Each tile is colored eit ...
- ACM: 限时训练题解-Epic Professor-水题
Epic Professor Dr. Bahosain works as a professor of Computer Science at HU (Hadramout Universit ...
- linux下转换U盘文件系统
打算在windows 7 下复制一个12G 的文件至U盘,无奈U盘为FAT32格式,最大支持移动4G 的文件,只能将U盘文件系统格式化为NTFS.windows 7系统出现问题,转化中总是出现错误.故 ...
- gerrit使用教程
注:使用时把“user”替换为自己的账号,例如 ueapp: ssh://huang.fei@10.0.64.16:29418/jonet2_0_app_ueapp.git 新的环境下需要先注册g ...
- ADO.NET测试题
第一部分: 新建一个数据库:ADO测试,包含下面两个数据表,使用代码创建,并保留创建的代码文本. 学生表Student: 编号(Code):nvarchar类型,不能为空,主键 姓名(Name):nv ...
- Odoo SSO 单点登录
很多公司会有内部单点登录系统,采用Odoo系统的公司可能就有需要将Odoo接入公司内部的单点登录系统. 实现的思路很简单,由于每个公司的系统不一样,代码仅作示例说明. 首先,重写Odoo登录界面: & ...
- jquery中对动态生成的标签响应click事件(二)…与ajax交互使用
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncodin ...
- js 数组排序
sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码顺序排列. 2.如果指 ...