课本例题:
/********说明下列程序的执行过程和运算结果*****/
#include<iostream>
#include<cmath>
using namespace std;
double squ(double);
int main()
{
double x;
cout<<"please input x:"<<" ";
cin>>x;
cout<<"The square root of "<<x<<" is "<<squ(x)<<endl;
return 0;
}
double squ(double x)
{
double s1,s2;
s1=0.5*(1.0+x);
do
{
s2=s1;
s1=(s2+x/s2)*0.5;
}while(fabs(s2-s1)>1.0E-6);
return s1;
}
/****求整数次幂的函数****/
#include <iostream>
using namespace std;
long int Power(int base,int exponent);
int main()
{
int base,exponent,result;
cout<<"请输入基数:"<<endl;
cin>>base;
cout<<"请输入幂的大小:"<<endl;
cin>>exponent;
result=Power(base,exponent);
cout <<base<<"^"<<exponent<<" = "<<result<<endl;
return 0;
}
long int Power(int base,int exponent)
{
int i,result=1;
for(i=0;i<exponent;i++)
{
result*=base;
}
return result;
}
/*****判断一个正整数是否是素数****/
#include <iostream>
using namespace std;
void judge(int num);
int main()
{
int num;
cout<<"请输入一个整数: "<<endl;
cin>>num;
judge(num);
return 0;
}
void judge(int num)
{
int i,jud=0;
for(i=2;i<num;i++)
if(num%i==0)
{
cout<<"该数不是素数。"<<endl;
jud++;
break;
}
if(jud==0)
cout<<"该数是素数"<<endl;
}
/****习题4********/
#include <iostream>
using namespace std;
int fun(int num);
int main()
{
int num,result;
cout<<"请输入一个整数: "<<endl;
cin>>num;
result=fun(num);
cout <<"颠倒后结果为:"<<result<<endl;
return 0;
}
int fun(int num)
{
int result=0;
while(num)
{
result+=num%10;
num=num/10;
result*=10;
}
result/=10;
return result;
}
/******习题5*********/
#include <iostream>
using namespace std;
void grade(double);
int main()
{
double a;
cout<<"请输入一个百分制分数:"<<endl;
cin>>a;
grade(a);
return 0;
}
void grade(double n)
{
if(n>85&&n<=100)
cout<<"the grade is A"<<endl;
if(n>75&&n<=85)
cout<<"the grade is B"<<endl;
if(n>=60&&n<=75)
cout<<"the grade is C"<<endl;
if(n>=0&&n<60)
cout<<"the grade is D"<<endl;
else
cout<<"请重新输入一个百分之分数:"<<endl;
}
/******习题6*********/
#include <iostream>
using namespace std;
void ave(double a[10])
{
int i;
double sum=0,ave;
for(i=0;i<10;i++)
sum+=a[i];
ave=sum/10;
cout<<"10个学生平均成绩为:"<<ave<<endl;
}
int main()
{
double a[10];
cout<<"请分别输入10个学生的成绩"<<endl;
for(int i=0;i<10;i++)
cin>>a[i];
ave(a);
return 0;
}
/*****习题7********/
using namespace std;
int gy_max(int m,int n);
int gb_min(int p,int q);
int main()
{
int a,b;
cout<<"输入两个整数:"<<endl;
cin>>a>>b;
cout<<"求得两个整数的最大公约数是:"<<gy_max(a,b)<<endl;
cout<<"求得两个整数的最小公倍数是:"<<gb_min(a,b)<<endl;
return 0;
}
int gy_max(int m,int n)
{
int max,int min;
max=m>n?m:n;
min=m<n?m:n;
int res;
res=max%min;
if(res==0)
return min;
else
gy_max(min,res);
}
int gb_min(int p,int q)
{
int x;
x=p*q/gy_max(p,q);
return x;
}
/*****习题8********/
#include <iostream>
using namespace std;
void fun_1();
void fun_2();
void fun_3();
int main()
{
cout <<"全部输出:"<<endl;
fun_1();
cout <<endl<<endl;
cout <<"对角线以下输出:"<<endl;
fun_2();
cout <<endl<<endl;
cout <<"对角线以上输出:"<<endl;
fun_3();
cout <<endl;
return 0;
}
void fun_1()
{
int fac_1,fac_2,pro;
for(fac_2=1;fac_2<=9;fac_2++)
{
for(fac_1=1;fac_1<=9;fac_1++)
{
pro=(fac_1*fac_2);
cout <<fac_1<<"×"<<fac_2<<"="<<pro<<" ";
if (pro<10)
cout<<" ";
}
cout << endl;
}
}
void fun_2()
{
int fac_1,fac_2,pro;
for(fac_2=1;fac_2<=9;fac_2++)
{
for(fac_1=1;fac_1<=fac_2;fac_1++)
{
pro=(fac_1*fac_2);
cout <<fac_1<<"×"<<fac_2<<"="<<pro<<" ";
if (pro<10)
cout<<" ";
}
cout << endl;
}
}
void fun_3()
{
int fac_1,fac_2,pro;
for(fac_2=1;fac_2<=9;fac_2++)
{
for(fac_1=1;;fac_1++)
{
if(fac_1<fac_2)
cout<<" ";
else
{
pro=fac_1*fac_2;
cout <<fac_1<<"×"<<fac_2<<"="<<pro<<" ";
if (pro<10)
cout <<" ";
}
if(fac_1==9)
break;
}
cout <<endl;
}
}
/*****习题9********/
#include<iostream>
using namespace std;
int max(int a,int b, int c);
int min(int&a,int&b, int&c);
int aver(int a,int b,int c);
double average;
int main()
{
int a,b,c;
cout<<"输入三个整数:"<<endl;
cin>>a>>b>>c;
cout<<"三个整数的最大值是:"<<max(a,b,c)<<endl;
min(a,b,c);
cout<<"三个整数的最小值是:"<<a<<endl;
aver(a,b,c);
cout<<"三个整数的平均值是:"<<average<<endl;
return 0;
}
int max(int a,int b, int c) //用值调用的方法
{
int max_1;
max_1=a>b?a:b;
max_1=max_1>c?max_1:c;
return max_1;
}
int min(int&a,int&b, int&c) //用引用调用的方法
{
a=a<b?a:b;
a=a<c?a:c;
return 0;
}
int aver(int a,int b,int c) //用全局变量
{
double e,f,g;
e=double(a);
f=double(b);
g=double(c);
average=(e+f+g)/3;
return 0;
}
/*******习题10******/
#include<iostream>
using namespace std;
void func();
int n=1;
int main()
{
static int a;
int b=-10;
cout<<"a:"<<a<<"\tb:"<<b<<"\tn:"<<n<<endl;
b+=4;
func();
cout<<"a:"<<a<<"\tb:"<<b<<"\tn:"<<n<<endl;
n+=10;
func();
return 0;
}
void func()
{
static int a=2;
int b=5;
a+=2;
n+=12;
b+=5;
cout<<"a:"<<a<<"\tb:"<<b<<"\tn:"<<n<<endl;
}
/*******第三大题******/
#include<iostream>
using namespace std;
void chengji();
int main()
{
chengji();
return 0;
}
void chengji()
{
int sum=0,i,j;
int a[4][5],b[5][3],c[4][3];
cout<<"输入矩阵4x5的元素:"<<endl;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
cin>>a[i][j];
cout<<"输入矩阵5x3的元素:"<<endl;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
cin>>b[i][j];
cout<<"两个矩阵的积是:"<<endl;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{
for(int k=0;k<5;k++)
{
sum+=a[i][k]*b[j][k];
c[i][j]=sum;
}
sum=0;
}
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
cout<<c[i][j]<<" ";
cout<<endl;
}
}
/*******第四大题******/
#include<iostream>
using namespace std;
int fun1(int n)
{
int i,sum1=1;
for(i=1;i<=n;i++)
sum1*=i;
return sum1;
}
void fun2(int n)
{
int i,sum2=0;
for(i=1;i<=n;i++)
sum2+=fun1(i);
cout<<"S[n]=1!+21+3!+...n!= "<<sum2<<endl;
}
int main()
{
int n;
cout<<"请输入一个整数n: "<<endl;
cin>>n;
fun2(n);
return 0;
}
/*******第五大题******/
#include <iostream>
using namespace std;
void fun(int n);
int main()
{
int n;
cout << "请输入一个16进制的数: ";
cin >>hex>>n;
fun(n);
return 0;
}
void fun(int n)
{
cout <<"该数的十进制数为:"<<n<<endl;
}