练习6.4
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int fun(int item) {
if (item < 0) return -1;
int intbegin{ 1 };
for (int i = 1; i <= item; ++i)
intbegin *= i;
return intbegin;
}
int main() {
int item;
cout << "Please enter an integer:\n";
cin >> item;
cout << "the result is " << fun(item) << endl;
return 0;
}
练习6.5
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int Abs(int item) {
return ((item < 0) ? (-item) : item);
}
int main() {
int item;
cout << "Please enter a number:\n";
cin >> item;
cout << "the result is " << Abs(item) << endl;
return 0;
}
练习6.7
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
int Count_calls() {
static int Count{ -1 };
return ++Count;
}
int main() {
for (int i = 0; i != 10; ++i) {
cout << Count_calls() << endl;
}
return 0;
}
练习6.10
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
void Exchange(int* a, int* b) {
int item;
item = *a;
*a = *b; *b = item;
return;
}
int main() {
int a, b;
cout << "Please enter two integers a and b:\n";
cin >> a >> b;
cout << "Before changing: a = " << a
<< " b = " << b << endl;
Exchange(&a, &b);
cout << "After changing: a = " << a
<< " b = " << b << endl;
return 0;
}
练习6.17
#include <iostream>
#include <string>
#include <cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;
bool haxUpp(const string& str);
void chUpp(string& str);
int main() {
cout << "Please write a string : \n";
string str;
getline(cin, str);
if (haxUpp(str)) {
cout << "The string you write has uppers" << endl;
chUpp(str);
cout << "After changing:\n" << str << endl;
}
else {
cout << "There is no Upper" << endl;
}
return 0;
}
bool haxUpp(const string& str) {
for (int i = 0; i != str.size(); i++) {
if (isupper(str[i])) {
return true;
}
}
return false;
}
void chUpp(string& str) {
for (int i = 0; i != str.size(); i++) {
if (isupper(str[i])) {
str[i] += 32;
}
}
}
练习6.22
#include <iostream>
using namespace std;
void conCh(int** p0, int** p1) {
int* item = *p0;
*p0 = *p1;
*p1 = item;
}
int main() {
int p0 = 0; int* conp0 = &p0;
int p1 = 1; int* conp1 = &p1;
cout << "Before changing *(conp0) = " << *(conp0)
<< " *(conp1) = " << *(conp1) << endl;;
conCh(&conp0, &conp1);
cout << "After changing *(conp0) = " << *(conp0)
<< " *(conp1) = " << *(conp1) << endl;
return 0;
}
练习6.27
#include <iostream>
using namespace std;
int Sum(initializer_list<int> ad) {
int sum{ 0 };
for (auto beg = ad.begin(); beg != ad.end(); beg++) {
sum += *(beg);
}
return sum;
}
int main() {
int sum = Sum({ 1,2,2,2 });
cout << sum << endl;
return 0;
}
练习6.33
编写一个递归函数,输出 vector 对象的内容
#include <iostream>
#include <vector>
using namespace std;
void printVec(vector<int> intVec, unsigned index) {
if (!intVec.empty() && index < intVec.size()) {
cout << intVec[index] << endl;
printVec(intVec, index + 1);
}
return;
}
int main() {
vector<int> item;
int id, count{ 0 };
while (count != 8) {
cin >> id;
item.push_back(id);
count++;
}
printVec(item, 0);
return 0;
}