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与面向对象程 ...
随机推荐
- Codeforces 676C Vasya and String(尺取法)
题目大概说给一个由a和b组成的字符串,最多能改变其中的k个字符,问通过改变能得到的最长连续且相同的字符串是多长. 用尺取法,改变成a和改变成b分别做一次:双指针i和j,j不停++,然后如果遇到需要改变 ...
- 类型“System.Windows.Markup.IQueryAmbient”在未被引用的程序集中定义
错误 1 类型"System.Windows.Markup.IQueryAmbient"在未被引用的程序集中定义.必须添加对程序集"System.Xaml, ...
- Linux下统计高速网络中的流量
netpps.sh统计每秒数据量,包含接收(RX)或发送(TX) netpps.sh eth0 #!/bin/bash INTERVAL=" # update interval in sec ...
- C# 字符串格式化
1.格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元) string.Format("{0:C}",0.2) 结果为:¥0.20 (英文操作系统结果:$0 ...
- BZOJ4607 : [PA2015 Final]Edycja
显然做完操作$2$后再做操作$1$. 建立一个$26$个点的有向图,每个点只有一条出边,$i$->$j$表示$i$最终变成了$j$,边权为一开始是$i$,最后不是$j$的位置个数,如果$i\ne ...
- js/jQuery判断浏览器名称、内核版本、浏览器壳
1.js方法 /* 判断浏览器名称和版本 目前只能判断:ie/firefox/chrome/opera/safari 2012年5月16日23:47:08 浏览器内核UA:UA; 浏览器内核名称:NV ...
- 使用HTML 5捕捉音频与视频信息
长期以来,音频与视频信息的捕捉一直是Web开发中的一个难点.许多年来,我们一直依赖浏览器插件来实现这个需求. 在HTML 5中,出现了许多可以访问硬件设备的API,例如访问GPS设备的Geolocat ...
- [BZOJ2803][Poi2012]Prefixuffix
2803: [Poi2012]Prefixuffix Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 219 Solved: 95[Submit][St ...
- linux修改系统编码
Windows的默认编码为GBK,Linux的默认编码为UTF-8.在Windows下编辑的中文,在Linux下显示为乱码.一种方法是在windows进行转码,比如使用ue工具在文件-->转换 ...
- weblogic部署项目包,报空指针错误
贴出 报错代码 <weblogic> <> <> <1479765377228> <BEA-240003> <Console enco ...