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与面向对象程 ...
随机推荐
- node.js文件系统
FS文件系统 第一次用这个的时候非常爽,可以在代码层编写“增删改查”文件的功能.分解里面提供的方法,接下来我们从头创建开始,最后删除文件结束,一套流程接下fs文件系统的神奇. 要使用fs文件系统就要引 ...
- iOS学习36数据处理之SQLite数据库
1. 数据库管理系统 1> SQL语言概述 SQL: SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集, 是一种功能齐全的 ...
- [转]OpenVPN 安装与配置
一.服务器端安装及配置 服务器环境:干净的CentOS6.3 64位系统 内网IP:10.143.80.116 外网IP:203.195.xxx.xxx OpenVPN版本:OpenVPN 2.3.2 ...
- HDU 1452 (约数和+乘法逆元)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1452 题目大意:求2004^X所有约数和,结果mod 29. 解题思路: ①整数唯一分解定理: 一个 ...
- sed 格式化输出df -h
df -h|sed '1d;/ /!N;s/\n//;s/ \+/ /;' 1d——————删除第一行 / /!N——————没有空格的行执行N 例子中没有空格的行 /dev/mapper/vg_ds ...
- Codeforces Round #244 (Div. 2) A. Police Recruits
题目的意思就是找出未能及时处理的犯罪数, #include <iostream> using namespace std; int main(){ int n; cin >> ...
- js判断访问来源
通过navigator的userAgent属性来判定 userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值.一般来讲,它是在 navigator.appCode ...
- RMQ问题之ST算法
RMQ问题之ST算法 RMQ(Range Minimum/Maximum Query)问题,即区间最值问题.给你n个数,a1 , a2 , a3 , ... ,an,求出区间 [ l , r ]的最大 ...
- JSP -- for循环按钮处理事件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...
- golang github.com/go-sql-driver/mysql 遇到的数据库,设置库设计不合理的解决方法
golang github.com/go-sql-driver/mysql 遇到的数据库,设置库设计不合理的解决方法,查询中报了以下这个错 Scan error on column index 2: ...