2020 我的C++学习之路 C++PrimerPlus第九章课后习题
生活随笔
收集整理的這篇文章主要介紹了
2020 我的C++学习之路 C++PrimerPlus第九章课后习题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以C++ Primer Plus為參考書籍,自身歸納知識點,加深記憶。僅供參考,DEV C++已通過編譯運行
。
練習1
練習2
#include<iostream> #include<string> #include<cctype>void strcount(const std::string str);int main() {using namespace std;string input;cout << "Enter a line:\n";getline(cin, input);while (cin){strcount(input);cout << "Enter next line(empty line to quit):\n";getline(cin, input);}}void strcount(const std::string str) {using namespace std;static int total = 0;int count = 0;if (str == "")cout << "BLANK!\n";else{for (int cnt = 0; cnt < str.size(); ++cnt)//str.size()返回所有非‘\0’字符的長度,與題設不符{if (isalpha(str[cnt]))++count;}total += count;cout << "\"" << str << "\" contains ";cout << count << " characters\n";cout << total << " characters total\n";}}練習3
方法一
方法二
#include<iostream>struct chaff {char dross[20];int slag; };int main() {using namespace std;chaff* ptr = new chaff[2];for (int i = 0; i < 2; ++i){cout << "Enter dross[20]: ";cin.getline(ptr[i].dross, 20);cout << "Enter slag: ";cin >> ptr[i].slag;cin.get();}for (int i = 0; i < 2; ++i){cout << "DROSS: " << ptr[i].dross << endl;cout << "SLAG: " << ptr[i].slag << endl;}delete[]ptr;return 0; }練習4
//p4.h namespace SALES {const int QUARTERS = 4;struct Sales{double sales[QUARTERS];double average;double max;double min;};void setSales(Sales& s, const double ar[], int n);void setSales(Sales& s);void showSales(const Sales& s); } //function part #include<iostream> #include"p4.h"namespace SALES {void setSales(Sales& s, const double ar[], int n){double sum = 0;for (int i = 0; i < n; ++i){s.sales[i] = ar[i];sum += s.sales[i];}s.average = sum / n;double tempmax, tempmin;tempmax = tempmin = ar[0];for (int i = 0; i < n; ++i){if (tempmax < s.sales[i])tempmax = s.sales[i];if (tempmin > s.sales[i])tempmin = s.sales[i];}s.max = tempmax;s.min = tempmin;}void setSales(Sales& s){using std::cout;using std::cin;using std::endl;int cnt = 0;cout << "Enter sales array: ";while (cnt < QUARTERS && cin >> s.sales[cnt] )//順序不可替換,否則會多一次錄入,雖然錄入并沒有什么用++cnt;double sum = 0;for (int i = 0; i < cnt; ++i)sum += s.sales[i];s.average = sum / cnt;double tempmax, tempmin;tempmax = tempmin = s.sales[0];for (int i = 0; i < cnt; ++i){if (tempmax < s.sales[i])tempmax = s.sales[i];if (tempmin > s.sales[i])tempmin = s.sales[i];}s.max = tempmax;s.min = tempmin;}void showSales(const Sales& s){using namespace std;for (int i = 0; i < QURATES ; ++i)cout << "SALES[" << i << "]: " << s.sales[i] << endl;cout << "AVERAGE: " << s.average << endl;cout << "MAX: " << s.max << endl;cout << "MIN: " << s.min << endl;} } #include<iostream> #include"p4.h"int main() {using SALES::Sales;using SALES::setSales;using SALES::showSales;Sales test1;double arr[3] = { 1.3,6.2,2.8 };setSales(test1, arr, 3);//程序存在瑕疵,原因在于arr小于4個時,show也打印出4個,但是把showSales(test1);//后續部分都處理成0也貌似有點不妥的樣子,所以大概就這樣吧:)Sales test2;setSales(test2);showSales(test2);return 0; }總結
以上是生活随笔為你收集整理的2020 我的C++学习之路 C++PrimerPlus第九章课后习题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020 我的C++的学习之路 第八章函
- 下一篇: 2020 我的C++的学习之路 第九章