6.3
#include<iostream>
using namespace std;
int fact(int val)
{
int ret = 1;
while (val > 1)
{
ret *= val --;
}
return ret;
}
int main()
{
int j = fact(5);
cout << "5! is " << j << endl;
return 0;
}
6.4编写一个与用户交互的函数,要求用户输入一个数字,计算生成该数字的阶乘。在main函数中调用该函数。
#include<iostream>
using namespace std;
void myFact()
{
int val;
cout << "请输入一个整数:";
cin >> val;
int ret = 1;
while(val > 1)
{
ret *= val--;
}
cout << "result is " << ret << endl;
}
int main()
{
myFact();
return 0;
}
6.5编写一个函数输出其实参的绝对值。
#include<iostream>
using namespace std;
int myAbs(int val)
{
return val > 0 ? val : -val;
}
int main()
{
cout << "请输入一个数:";
int val;
cin >> val;
cout << myAbs(val) << endl;
return 0;
}
6.6
#include<iostream>
using namespace std;
size_t count_calls(int i)//形参
{
int temp = i;//局部变量
static size_t ctr = temp;//局部静态变量
return ++ctr;
}
int main()
{
for(size_t i = 0; i != 10; ++i)
{
cout << count_calls(-1) << endl;
}
return 0;
}
6.7
#include<iostream>
using namespace std;
size_t count_calls()
{
static size_t ctr = -1;
return ++ctr;
}
int main()
{
for(size_t i = 0; i != 10; ++i)
{
cout << count_calls() << endl;
}
return 0;
}
6.8编写一个名为Chapter6.h的头文件,令其包含6.1节练习中的函数声明。
//Charpter6.h
int fact(int val);