8-2
#include "pch.h" #include <iostream> #include <fstream> #include <cstdlib> #include <string> #include <cctype> #include <array> #include <iomanip> using namespace std; struct CandyBar { string brand; double weight; int heat; }; void info_candy(CandyBar &changed_para, char* str, double m, int n); void show(CandyBar &candy);//test int main() { CandyBar init_para = { "Millennium Munch", 2.85, 350 }; show(init_para); char ch[20]; cin.getline(ch,20); double m; cin >> m; int n; cin >> n; info_candy(init_para, ch, m, n); show(init_para); return 0; } void info_candy(CandyBar &changed_para, char* str, double m, int n) { changed_para.brand = str; changed_para.weight = m; changed_para.heat = n; } void show(CandyBar &candy) { cout << candy.brand << " " << candy.weight << " " << candy.heat << endl; }
8-3
#include "pch.h" #include <iostream> #include <fstream> #include <cstdlib> #include <string> #include <cctype> #include <array> #include <iomanip> #include <algorithm> using namespace std; void upper(string& lower); int main() { string lower; getline(cin, lower); while (lower!="q") { upper(lower); cout << lower << endl; getline(cin, lower); } return 0; } void upper(string & lower) { char *pt= &lower[0]; int length = lower.size(); pt[0]=toupper(pt[0]); for (int i = 1; i < length; i++) { pt[i]=toupper(pt[i]); } }
8-4
using namespace std; struct stringy { char* str; int ct; }; void set(stringy &beany, char []); void show(stringy str,int n=1); void show(const char* str, int n=1); int main() { stringy beany; char testing[] = "Reality isn't what it used to be."; set(beany, testing); show(beany); testing[0] = 'D'; testing[1] = 'u'; show(testing); show(testing, 3); show("Done!"); return 0; } void set(stringy &beany, char ch[]) { beany.str = ch; } void show(stringy str,int n) { for (int i = 0; i < n; i++) cout << str.str << endl; } void show(const char* str, int n) { for (int i = 0; i < n; i++) cout << str << endl; }
8-5
template<class T> T maxn(T a[]); int main() { int a[5] = { 1,2,3,4,5 }; double aa[5] = { 2.1,3.1,4.1,1.1,1.0 }; int max1 = maxn(a); double max2 = maxn(aa); cout << max1 << ' ' << max2; return 0; } template<class T> T maxn(T a[]) { T temp=a[0]; for (int i = 1; i < 5; i++) { if (a[i] > temp) temp = a[i]; } return temp; }
8-6
using namespace std; template<typename T> T maxn(T ar[], int n); template <> const char* maxn(const char* ch[], int n); int main(void) { const char *ch[3] = { "aa","b","ccc" }; int a[6] = { 1,2,3,4,2,4 }; double b[4] = { 1.1,2.2,0.3,2.4 }; int maxa = maxn(a,6); double maxb = maxn(b, 4); const char* pr; pr = maxn(ch, 3); cout << maxa << " " << maxb << " " << &pr << " " << static_cast<const void*>(pr); return 0; } template<typename T> T maxn(T ar[], int n) { T temp; temp = ar[0]; for (int i = 1; i < n; i++) { if (ar[i] > temp) temp = ar[i]; } return temp; } template <> const char* maxn(const char* ch[], int n) { const char *temp = ch[0]; for (int i = 1; i < n; i++) { if (strlen(temp) < strlen(ch[i])) temp = ch[i]; } return temp; }
8-7
using namespace std; template<typename T> T sumArray(T ar[], int n); template<typename T> T sumArray(T* ar[], int n); struct debts { char name[50]; double amount; }; int main(void) { int things[6] = { 13,31,103,301,310,130 }; debts mr[3]= { {"Light",13.4}, {"Lighr",13.1}, {"Lighy",13.2} }; double* pd[3]; for (int i = 0; i < 3; i++) { pd[i] = &mr[i].amount; } int sum1; sum1=sumArray(things, 6); double sum2; sum2 = sumArray(pd, 3); cout << sum1 << " " << sum2; return 0; } template<typename T> T sumArray(T ar[], int n) { T sum = 0; for (int i = 0; i < n; i++) sum += ar[i]; return sum; } template<typename T> T sumArray(T* ar[], int n) { T sum = 0; for (int i = 0; i < n; i++) sum += *ar[i]; return sum; }