第五章作业



课本习题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; 
     



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值