6.4
#include
#include
#include
#include
#include
#include
using namespace std; int fact(int val) { if (val < 0) return -1; int ret = 1; for (int i = 1; i != val + 1; ++i) ret *= i; return ret; } int main() { int num; cout << "请输入一个整数:"; cin >> num; cout << num << "的阶乘是:" << fact(num) << endl; return 0; }
6.5
#include
#include
#include
#include
#include
#include
using namespace std; double myABS(double val) { if (val < 0) return val*-1; else return val; } double myABS2(double val) { return abs(val); } int main() { double num; cout << "请输入一个数:"; cin >> num; cout << num << "的绝对值是:" << myABS(num) << endl; cout << num << "的绝对值是:" << myABS2(num) << endl; return 0; }
6.6
#include
#include
#include
#include
#include
#include
using namespace std; double myADD(double val1, double val2) { double result = val1 + val2; static unsigned iCnt = 0; ++iCnt; cout << "该函数已经累计执行了" << iCnt << "次" << endl; return result; } int main() { double num1, num2; cout << "请输入两个整数:"; while (cin >> num1 >> num2) { cout << num1 << "与" << num2 << "的求和结果是:" << myADD(num1, num2) << endl; } return 0; }
6.7
这里写代码片
6.8
#ifndef CHAPTER6_H_INCLUDED
#define CHAPTER6_H_INCLUDED
int fact(int);
double myABS(double);
#endif
6.9
#include"Chapter6.h"
#include
using namespace std;
double myABS(double val)
{
if (val < 0)
return val*-1;
else
return val;
}
double myABS2(double val)
{
return abs(val);
}
int fact(int val)
{
if (val < 0)
return -1;
int ret = 1;
for (int i = 1; i != val + 1; ++i)
ret *= i;
return ret;
}
#include
#include
#include
#include
#include
#include
#include"Chapter6.h" using namespace std; int main() { int num; cout << "请输入一个整数:"; cin >> num; cout << num << "的阶乘是:" << fact(num) << endl; return 0; }
6.10
#include
#include
#include
#include
#include
#include
using namespace std; void mySWAP(int *p, int *q) { int tmp = *p; *p = *q; *q = tmp; } int main() { int a = 5, b = 10; int *r = &a, *s = &b; cout << "交换前:a=" << a << ",b=" << b << endl; mySWAP(r, s); cout << "交换后:a=" << a << ",b=" << b << endl; return 0; }
6.11
#include
#include
#include
#include
#include
#include
using namespace std; void reset(int &i) { i = 0; } int main() { int num = 10; cout << "重置前:num=" << num << endl; reset(num); cout << "重置后:num=" << num << endl; return 0; }
6.12
#include
#include
#include
#include
#include
#include
using namespace std; void mySWAP(int &i, int &j) { int tmp = i; i = j; j = tmp; } int main() { int a = 5, b = 10; int *r = &a, *s = &b; cout << "交换前:a=" << a << ",b=" << b << endl; mySWAP(a,b); cout << "交换后:a=" << a << ",b=" << b << endl; return 0; }
6.13
#include
#include
#include
#include
#include
#include
using namespace std; void a(int); void b(int&); int main() { int s = 0, t = 10; a(s); cout << s << endl; b(t); cout << t << endl; return 0; } void a(int i) { ++i; cout << i << endl; } void b(int& j) { ++j; cout << j << endl; }
6.17
#include
#include
#include
#include
#include
#include
using namespace std; bool HasUpper(const string& str) { for (auto c : str) { if (isupper(c)) return true; return false; } } void ChangeToLower(string& str) { for (auto &c : str) { c = tolower(c); } } int main() { cout << "请输入一个字符串:" << endl; string str; cin >> str; if (HasUpper(str)) { ChangeToLower(str); cout << "转换后的字符串是:" << str << endl; } else { cout << "该字符串不含大写字母,无须转换" << endl; } return 0; }
6.21
#include
#include
#include
#include
#include
#include
using namespace std; int myCompare(const int val, const int *p) { return (val > *p) val : *p; } int main() { srand((unsigned)time(NULL)); int a[10]; for (auto &i : a) i = rand() % 100; cout << "请输入一个数:"; int j; cin >> j; cout << "您输入的数与数组首元素中交大的是:" << myCompare(j, a) << endl; cout << "数组的全部元素是:" << endl; for (auto i : a) cout << i << " "; cout << endl; return 0; }
6.22
#include
#include
#include
#include
#include
#include
using namespace std; void SwapPointer1(int *p, int *q) { int *temp = p; p = q; q = temp; } void SwapPointer2(int *p, int *q) { int temp = *p; *p = *q; *q = temp; } void SwapPointer3(int *&p, int *&q) { int *temp = p; p = q; q = temp; } int main() { int a = 5, b = 10; int *p = &a, *q = &b; cout << "交换前:" << endl; cout << "p的值是:" << p << ",q的值是:" << q << endl; cout << "p所指的值是:" << *p << ",q所指的值是:" << *q << endl; SwapPointer1(p, q); cout << "交换后:" << endl; cout << "p的值是:" << p << ",q的值是:" << q << endl; cout << "p所指的值是:" << *p << ",q所指的值是:" << *q << endl; a = 5, b = 10; cout << "交换前:" << endl; cout << "p的值是:" << p << ",q的值是:" << q << endl; cout << "p所指的值是:" << *p << ",q所指的值是:" << *q << endl; SwapPointer2(p, q); cout << "交换后:" << endl; cout << "p的值是:" << p << ",q的值是:" << q << endl; cout << "p所指的值是:" << *p << ",q所指的值是:" << *q << endl; a = 5, b = 10; cout << "交换前:" << endl; cout << "p的值是:" << p << ",q的值是:" << q << endl; cout << "p所指的值是:" << *p << ",q所指的值是:" << *q << endl; SwapPointer3(p, q); cout << "交换后:" << endl; cout << "p的值是:" << p << ",q的值是:" << q << endl; cout << "p所指的值是:" << *p << ",q所指的值是:" << *q << endl; return 0; }
6.23
#include
#include
#include
#include
#include
#include
using namespace std; void print1(const int *p) { cout << *p << endl; } void print2(const int *p, const int sz) { int i = 0; while (i != sz) { cout << *p++ << endl; ++i; } } void print3(const int *b, const int *e) { for (auto q = b; q != e; ++q) cout << *q << endl; } int main() { int i = 0; int j[2] = { 0, 1 }; print1(&i); print1(j); print2(&i, 1); print2(j, sizeof(j) / sizeof(int)); auto a = begin(j); auto b = end(j); print3(a, b); return 0; }
6.25
#include
#include
#include
#include
#include
#include
using namespace std; int main(int argc, char **argv) { string str; for (int i = 0; i != argc; i++) str += argv[i]; cout << str << endl; return 0; }
6.26
#include
#include
#include
#include
#include
#include
using namespace std; int main(int argc, char **argv) { for (int i = 0; i != argc; i++) { cout << "argc[" << i << "]:" << argv[i] << endl; } return 0; }
6.27
#include
#include
#include
#include
#include
#include
using namespace std; int iCount(initializer_list
il) { int count = 0; for (auto val : il) count += val; return count; } int main() { cout << "1,6,9的和是:" << iCount({ 1, 6, 9 }) << endl; cout << "4,5,9,18的和是:" << iCount({ 4, 5, 9, 18 }) << endl; cout << "10,10,10,10,10,10,10,10,10的和是:" << iCount({ 10, 10, 10, 10, 10, 10, 10, 10, 10 }) << endl; return 0; }
#include
#include
#include
#include
#include
#include
using namespace std; void print(vector
v, int index) { unsigned sz = v.size(); if (!v.empty() && index < sz) { cout << v[index] << endl; print(v, index + 1); } } int main() { vector
v = { 1, 3