首页 > 代码库 > C++ Primer Pluse_8_课后题
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_课后题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。