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与面向对象程 ...
随机推荐
- sqlserver中创建链接服务器
链接服务器在跨数据库/跨服务器查询时非常有用(比如分布式数据库系统中),本文将以图文方式详细说明如何利用SQL Server Management Studio在图形界面下创建链接服务器. 1 ...
- ural 1341. Device
1341. Device Time limit: 1.0 secondMemory limit: 64 MB Major (M): You claimed that your device would ...
- 【原】iOS学习46之第三方CocoaPods的安装和使用(通用方法)
本文主要说明CocoaPods的安装步骤.使用说明和常见的报错即解决方法. 1. CocoaPods 1> CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具. ...
- HDU 3074 (线段树+模P乘法)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3074 题目大意:单点更新.维护序列乘法.mod 1000000007. 解题思路: 10000000 ...
- rem 产生的小数像素问题
由于日常需求以无线居多,所以可以在业务中做一些尝试,如 rem,刚接触这个特性的时候,曾经一度爱不释手,仿佛在无线开发的坎坷路上寻找到一条捷径.然而随着使用范围的扩大,慢慢的发现了一些使用 rem 带 ...
- 使用CSS3的appearance属性改变元素的外观
昨天在和同事一起完成项目的时候,我使用了appearance来渲染select,但是在firefox下出现问题,不完美,最后去除了.但还是要学习下这个属性.大家都知道每个浏览器对HTML元素渲染都不一 ...
- topcoder SRM 622 DIV2 BoxesDiv2
注意题目这句话,Once you have each type of candies in a box, you want to pack those boxes into larger boxes, ...
- usaco silver刷水~其实是回顾一下,补题解
[BZOJ1606][Usaco2008 Dec]Hay For Sale 裸01背包 ;i<=n;i++) for(int j=m;j>=a[i];j--) f[j]=max(f[j], ...
- How to create a project with Oracle Policy Modeling
This blog is about how to create a project with Oracle Policy Modeling. You can do it successfully i ...
- C语言工具---Code::Blocks
Code::Blocks Code::Blocks 是一个开源的全功能的跨平台C/C++集成开发环境. Code::Blocks是开放源码软件.由纯粹的C++语言开发完成,它使用了著名的图形界面库wx ...