课本习题1
#include<iostream>
#include<cmath>//fabs()函数包含在该头文件中
using namespace std;
double squ(double);//子函数声明
int main()
{
double x;
cout<<"please input x:";
cin>>x; //输入变量x的值
cout<<"The square root of"<<x<<"is"<<squ(x)<<endl; //输出返回的值s1
return 0; //返回0
}
double squ(double x)
{
double s1,s2;
s1=0.5*(1.0+x);
do
{
s2=s1; //将s1的值赋给s2,所以s2=0.5*(1.0+x)
s1=(s2+x/s2)*0.5; //s1重新赋值为(s2+x/s2)*0.5其中s2=0.5*(1.0+x)
23. }while(fabs(s2-s1)>1.0E-6); //fabs为求绝对值函数,如果s2-s1为0时继续执行do while函数
//否则结束循环返回s1到主函数
return s1;
}
课本习题2
/**********************************
***功能:调用子函数求a的n次幂*****
**********************************/
#include<iostream>
using namespace std;
long intPower(int base,int exponent);
int main()
{
int a,n;
cout<<"求a的n次幂的值"<<endl
<<"a=";
cin>>a;
cout<<"n=";
cin>>n;
cout<<"求得结果为";
cout<<intPower(a,n)<<endl;
return 0;
}
long intPower(int base,int exponent)
{
unsigned char i;
long k=1;
for(i=1;i<=exponent;i++)
{
k*=base;
}
return k;
}
课本习题四
/***************************
***功能:将一整数的顺序相反***
****************************/
#include<iostream>
using namespace std;
int fun(int a);
int main()
{
int j;
cout<<"输入整数:";
cin>>j;
cout<<"输出整数:";
cout<<fun(j)<<endl;
return 0;
}
int fun(int a)
{
int i,s=0;
while(a!=0)
{
i=a%10;
a=a/10;
s=s*10+i;
}
return s;
}
课本习题五
/*****************************
**** 功能:求分数等级 ****
*****************************/
#include<iostream>
using namespace std;
char change(int a);
int main()
{
int score;
while(1)
{
cout<<"请输入分数:";
cin>>score;
while(score>100||score<0)
{
cout<<"该数不符合,请重新输入:";
cin>>score;
}
cout<<"该分数等级为"<<change(score)<<endl;
}
return 0;
}
char change(int a)
{
if(a>=90)
return 'A';
else if(a<90&&a>=80)
return 'B';
else if(a<80&&a>=70)
return 'C';
else if(a<70&&a>=60)
return 'D';
else
return 'E';
}
课本习题6
/*************************
****求10个成绩的平均数****
*************************/
#include<iostream>
using namespace std;
float average(int*);
int main()
{
int a[10],i;
cout<<"输入10个学生的成绩:"<<endl;
for(i=0;i<10;i++)
cin>>a[i];
cout<<"平均分为";
cout<<average(a)<<endl;
return 0;
}
float average(int* score)//子函数:参数为score数组,返回值为其平均数
{
int i,s=0;
float v;
for(i=0;i<10;i++)
{
s+=score[i];
}
v=s/10.0;
return v;
}
课本习题7
/*****************************************
***功能:求两数的最大公约数和最小公倍数***
*****************************************/
#include<iostream>
using namespace std;
int gongyue(int a,int b);
int gongbei(int a,int b);
int main()
{
int i,j;
cout<<"请输入两个正整数:";
cin>>i>>j;
cout<<"最大公约数为";
cout<<gongyue(i,j)<<endl;
cout<<"最大公倍数为";
cout<<gongbei(i,j)<<endl;
return 0;
}
int gongyue(int a,int b)//求最大公约数
{
int m;
m=a<b?a:b;
while(a%m!=0||b%m!=0)
{
m--;
}
return m;
}
int gongbei(int a,int b)//求最小公倍数
{
int n;
n=a>b?a:b;
while(n%a!=0||n%b!=0)
{
n++;
}
return n;
课本习题八
/****************************** ***功能:九九乘法表的三种输出***
*******************************/
#include<iostream>
#include<iomanip>
using namespace std;
void fun1();
void fun2();
void fun3();
int main()
{
cout<<"九九乘法表:"<<endl;
cout<<"表1:"<<endl;
fun1();
cout<<endl<<endl;
cout<<"表2:"<<endl;
fun2();
cout<<endl<<endl;
cout<<"表3:"<<endl;
fun3();
return 0;
}
void fun1()
{
int i,j,k;
for(i=1;i<10;i++)
{
for(j=1;j<10;j++)
{ k=i*j;
cout<<i<<"*"<<j<<"="<<k<<'\t';
}
cout<<endl;
}
}
void fun2()
{
int i,j,k;
for(i=1;i<10;i++)
{
for(j=1;j<10;j++)
{
k=i*j;
if(i>j)
{
cout<<" ";
}
else
cout<<i<<"*"<<j<<"="<<k<<'\t';
}
cout<<endl;
}
}
void fun3()
{
int i,j,k;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
k=i*j;
cout<<i<<"*"<<j<<"="<<k<<'\t';
}
cout<<endl;
}
课本习题9
/*************************
*用值调用求三数的最大最小平均值*
*************************/
#include<iostream>
using namespace std;
float average(int*);
float max(int*);
float min(int*);
int main()
{
int a[3],i;
cout<<"输入3个整数:"<<endl;
for(i=0;i<3;i++)
cin>>a[i];
cout<<"最大值为"<<max(a)<<endl;
cout<<"最小值为"<<min(a)<<endl;
cout<<"平均值为"<<average(a)<<endl;
return 0;
}
float max(int* a)
{
int i;
float v;
v=a[0];
for(i=0;i<3;i++)
{
if(a[i]>v)
v=a[i];
}
return v;
}
float min(int* a)
{
int i;
float v;
v=a[0];
for(i=0;i<3;i++)
{
if(a[i]<v)
v=a[i];
}
return v;
}
float average(int* a)
{
int i,s=0;
float v;
for(i=0;i<3;i++)
{
s+=a[i];
}
v=s/3.0;
return v;
}
作业三
/************************
***功能:求两矩阵乘积****
************************/
#include<iostream>
using namespace std;
void fun(int m[][5],int n[][3])//子函数:求m,n两二维矩阵的乘积
{
int i,j,k;
int c[4][3]={0},t;
for(i=0;i<4;i++)
for(j=0;j<3;j++)
for(k=0;k<5;k++)
{
t=m[i][k]*n[k][j];
c[i][j]+=t;
}
cout<<"output the c[i][j]"<<endl;
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
cout<<c[i][j]<<'\t';
cout<<endl<<endl;
}
}
int main()
{
int i,j,k;
int a[4][5],b[5][3];
cout<<"please intput the number of a[4][5]"<<endl;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
cin>>a[i][j];
cout<<"please intput the number of b[5][3]"<<endl;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
cin>>b[i][j];
fun(a,b);
return 0;
}
作业四
/*****************************************
*** 功能:求s=1!+2!+3!+……+n! ****
*****************************************/
#include<iostream>
using namespace std;
float jiecheng(int n);
float qiuhe(int n);
int main() //主函数
{
float i;
int j;
cout<<"请输入n的值:";
cin>>j;
cout<<"求得结果为s=";
cout<<qiuhe(j)<<endl;
return 0;
}
float jiecheng(int n)//求n的阶乘函数
{
float m;
if(n==0)
{
m=1;
return m;
}
else
m=n*jiecheng(n-1);
return m;
}
float qiuhe(int n)//求阶乘和的函数,调用阶乘函数
{
int i;
float s=0;
for(i=1;i<=n;i++)
{
s+=jiecheng(i);
}
return s;
}
作业五
/*************************************
***功能:将十六进制数转换为十进制数***
*************************************/
#include<iostream>
#include<math.h>
using namespace std;
int change(int x);
int main()
{
int i;
cout<<"请输入一个十六进制数:";
cin>>i;
cout<<"转化为十进制数:";
cout<<change(i)<<endl;
return 0;
}
int change(int x)
{
int y,i=0,s=0;
while(x!=0)
{
y=x%10;
x=x/10;
s+=pow(16,i)*y;
i++;
}
return s;
}