是每一段放到一起的,中间用*//*分割,需要请自取,每一段都可以独立运行
是倒序排列的,前几段没有注释的是书后习题
#include<iostream>
#include<iomanip>
using namespace std;
int f(int m)
{
static int n = 1;
m/=2;m=m*2;
if(m)
{
n*=m;
return f(m-2);
}
else return n;
}
int main()
{
int a,i;
for(i=0; i<2; i++)
{
a = f(4+i);
cout<<setw(5)<<a;
}
return 0;
}
*//*
#include<iostream>
using namespace std;
int fun(int a)
{
int b = 0;
static int c = 3;
b++;
c++;
return (a+b+c);
}
int main()
{
int i,a=5;
for(i=0;i<3;i++)
cout<<i<<" "<<fun(a)<<endl;
cout<<endl;
}
*//*
#include<iostream>
using namespace std;
int* Fibonacci(int n);
int main()
{
int n = 0;
cout<<"Compute Fibonacci\nInput n:\n";
cin>>n;
if(n>0)cout<<Fibonacci(n)[n-1]<<endl;
else cout<<"Error!"<<endl;
delete[] Fibonacci(n);
return 0;
}
int* Fibonacci(int n)
{
int* Fib = new int[n+1];
Fib[0] = {1};
Fib[1] = {1};
for(int i = 2; i<n; i++)
Fib[i] = Fib[i-1] + Fib[i-2];
return Fib;
}
*//*
#include<iostream>
using namespace std;
void fun(int& x,int y)
{ int t = x; x = y; y = t; }
int main()
{
int a[2] = {23,42};
fun(a[1],a[0]);
cout<<a[0]<<", "<<a[1]<<endl;
}
*//*
#include<iostream>
using namespace std;
#define N 20
fun(int a[],int n, int m)
{
int i,j;
for(i=m;i>=n;i--)
a[i+1] = a[i];
}
int main()
{
int i,a[N] = {1,2,3,4,5,6,7,8,9,10};
for(i=0;i<20;i++)
cout<<a[i]<<" ";
cout<<endl;
fun(a,2,9);
for(i=0;i<20;i++)
cout<<a[i]<<" ";
cout<<endl;
}
*//*
//使用地址传递
#include<iostream>
using namespace std;
int swap(int a[]);
int main()
{
int arr[] = {5,10};
cout<<"x = "<<arr[0]<<"\ty = "<<arr[1]<<endl;
swap(arr);
cout<<"x = "<<arr[0]<<"\ty = "<<arr[1]<<endl;
return 0;
}
int swap(int a[])
{
int t;
t = a[0];
a[0] = a[1];
a[1] = t;
return a[0],a[1];
}
*//*
//值传递的单向性
#include<iostream>
using namespace std;
int swap(int a,int b);
int main()
{
int x(5),y(10);
cout<<"x = "<<x<<"\ty = "<<y<<endl;
swap(x,y);
cout<<"x = "<<x<<"\ty = "<<y<<endl;
return 0;
}
int swap(int a,int b)
{
int t;
t = a;
a = b;
b = t;
return a,b;
}
*//*
//重载函数
#include<iostream>
using namespace std;
int min(int x, int y) {return x<y?x:y;}
float min(float x, float y) {return x<y?x:y;}
int main()
{
int ia(10), ib(20);
double da(0.1), db(0.5);
cout<<"最小的是"<<min(ia,ib)<<endl;
cout<<"最小的是"<<min(da,db)<<endl;
}
*//*
//用递归函数实现阶乘
#include<iostream>
using namespace std;
int factorial(int n);
int main()
{
cout<<"计算n!,请输入n"<<endl;
int n,n_fact = 0;
cin>>n;
n_fact = factorial(n);
cout<<n_fact<<endl;
}
int factorial(int n)
{
int fn;
if(n == 0) fn = 1;
else fn = n * factorial(n-1);
return fn;
}
*//*
//使用全局作用域运算符
#include<iostream>
#include<iomanip>
using namespace std;
double pi = 3.1415926;
void BallVolume(double radius)
{
double volume = pi * radius * radius * radius * 4/3;
cout<<"球体积为:"<<setw(8)<<volume<<endl;
}
void CircleArea(float radius)
{
float pi = 3.14f;
float area = pi * radius * radius;
cout<<"圆面积为:"<<setw(8)<<area<<" float"<<endl;
area = ::pi * radius * radius;
cout<<"圆面积为:"<<setw(8)<<area<<" double"<<endl;
}
int main()
{
float r;
cout<<"请输入半径:"<<endl;
cin>>r;
BallVolume(r);
CircleArea(r);
return 0;
}
*//*
//从文件"idata.txt"读取成绩并取平均值
#include<iostream>
#include<fstream>
using namespace std;
int CalMean ();
int main()
{
int mean = CalMean();
cout<<"平均值="<<mean<<endl;
}
int CalMean ()
{
int count;
int score;
int sum(0),mean;
ifstream infile("idata.txt");
if(!infile)
{
cout<<"!infile"<<endl;
}
infile>>count;
cout<<"成绩个数:"<<count<<endl;
cout<<"成绩:"<<endl;
while(infile>>score)
{
cout<<score<<" \t";
sum += score;
}
cout<<endl;
if(count>0) mean = sum/count;
else mean = 0;
cout<<count<<endl;
return mean;
}
*//*
//计算三个整数绝对值的平均值
#include<iostream>
#include<cmath>
using namespace std;
int Cam(int a,int b,int c);
int main()
{
int a,b,c;
cout<<"计算三个整数绝对值的平均值:"<<endl;
cin>>a>>b>>c;
cout<<Cam(a,b,c)<<endl;
return 0;
}
int Cam(int a,int b,int c)
{
int sum = abs(a) + abs(b) + abs(c);
sum /= 3;
return sum;
}
*//*
//调用cmath函数计算
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int x = 8.1,y = -3.2;
cout<<"取平方根:" <<sqrt(x) <<"\n"
<<"向上取整:" <<ceil(x) <<"\n"
<<"e的x次方:" <<exp(x) <<"\n"
<<"取绝对值:" <<fabs(y) <<"\n"
<<"向下取整:" <<floor(x) <<"\n"
<<"取浮点数余数:"<<fmod(x,y)<<"\n"
<<"取自然对数:" <<log(x) <<"\n"
<<"取常用对数:" <<log10(x) <<"\n"
<<"x的y次方:" <<pow(x,y) <<"\n"
<<"取正弦:" <<sin(x);
}
*/