第七,八周作业

课本例题

例5.1

#include<iostream>  
using namespace std;  
void display()  
{  
    cout<<"This is an example."<<endl;  
}  
int main()  
{  
    display();  
    return 0;  
}  
 

例5.2

#include<iostream>  
using namespace std;  
double min(double x,double y)  
{  
    return x<y?x:y;  
}  
int main()  
{  
    cout<<min(6.0,5.0)<<endl;  
    return 0;  
}  

例5.3

#include<iostream>  
using namespace std;  
double circleArea(double);  
int main()  
{  
    double area=circleArea(5.0);  
    cout<<"area= "<<area<<endl;  
    return 0;  
}  
double circleArea(double r)  
{  
    double pi=3.14;  
    double area=pi*r*r;  
    return area;  
}  
 

例5.4

#include<iostream>  
using namespace std;  
int sum(int x,int y)  
{  
    int temp;  
    temp=x+y;  
    return temp;  
}  
int main()  
{  
    int a=10,b=5,c;  
    c=sum(a,b);  
    cout<<a<<"+"<<b<<"="<<c<<endl;  
    return 0;  
}  


例5.5

#include<iostream>  
using namespace std;  
int ncomp(int i,int j)  
{  
    if(i>j)  
        return 1;  
    if(i==j)  
        return 0;  
    return -1;  
}  
int main()  
{  
    int k=2;  
    int n=ncomp(k,++k);  
    cout<<n;  
    cout<<endl;  
    return 0;  
}  

例5.6

#include<iostream>  
using namespace std;  
int max(int u,int v)  
{  
    int w;  
    w=u>v?u:v;  
    return w;  
}  
int main()  
{  
    int a,b,c;  
    cout<<"please intput two numbers:";  
    cin>>a>>b;  
    c=max(a,b);  
    cout<<"a="<<a<<"b="<<b<<endl;  
    cout<<"Max is "<<c<<endl;  
    return 0;  
}  

例5.7

#include<iostream>  
using namespace std;  
int sqr(int x)  
{  
    x*=x;  
    return x;  
}  
int main()  
{  
    int t,s;  
    t=10;  
    s=sqr(t);  
    cout<<"t= "<<t<<'\t'<<"sqr("<<t<<")= "<<s<<endl;  
    return 0;  
}  

例5.8

#include<iostream>  
using namespace std;  
void swap(int u,int v);  
int main()  
{  
    int a=3,b=4;  
    cout<<"a = "<<a<<'\t'<<"b = "<<b<<endl;  
    swap(a,b);  
    cout<<"a = "<<a<<'\t'<<" b= "<<b<<endl;  
    return 0;  
}  
void swap(int u,int v)  
{  
    int temp;  
    temp=u;  
    u=v;  
    v=temp;  
}  

例5.9

#include<iostream>  
using namespace std;  
void swap(int &u,int &v);  
int main()  
{  
    int a=3,b=4;  
    cout<<"a = "<<a<<'\t'<<"b = "<<b<<endl;  
    swap(a,b);  
    cout<<"a = "<<a<<'\t'<<"b = "<<b<<endl;  
    return 0;  
}  
void swap(int &u,int &v)  
{  
    int temp;  
    temp=u;  
    u=v;  
    v=temp;  
}  

例5.10
#include<iostream>  
using namespace std;  
void display(int x,float y)  
{  
    cout<<x<<" "<<y;  
    return;  
}  
int main()  
{  
    float a;  
    int b;  
    cin>>b>>a;  
    display(b,a);  
    return 0;  
}  
例5.11

#include<iostream>  
#include<cmath>  
using namespace std;  
void GetRoots(/*in*/double,/*in*/double,/*in*/double,/*out*/double&,/*out*/double&);  
int main()  
{  
    double a,b,c;  
    double root1,root2;  
    cout<<"输入方程的三个系数a,b,c:"<<endl;  
    cin>>a>>b>>c;  
    GetRoots(a,b,c,root1,root2);  
    cout<<"root1= "<<rootl<<" root2 = "<<root2<<endl;  
    return 0;  
}  
void GetRoots(/*in*/double a,/*in*/double b,/*in*/double c,/*out*/double& root1,/*out*/double& root2);  
{  
    double temp;  
    temp = b*b-4.0*a*c;  
    root1=(-b+sqrt(temp))/(2.0*a);  
    root2=(-b-sqrt(temp))/(2.0*a);  
}  

例5.12

#include<iostream>  
using namespace std;  
long f2(int);  
long f1(int p)  
{  
    int k;  
    long r;  
    k=p*p;  
    r=f2(k);  
    return r;  
}  
long f2(int q)  
{  
    long fact=1;  
    for(int i=1;i<=q;i++)  
        fact*=i;  
    return fact;  
}  
int main()  
{  
    int i;  
    long sum=0;  
    for(i=2;i<=3;i++)  
        sum+=f1(i);  
    cout<<"sum="<<sum<<endl;  
    return 0;  
}  

例5.14

#include<iostream>  
#include<cmath>  
using namespace std;  
float f(float x);  
float root(float x1,float x2);  
float point(float x1,float x2);  
int main()  
{  
    float x1,x2,y1,y2,x;  
    do  
    {  
        cout<<"请输入根所在的范围:";  
        cin>>x1>>x2;  
        y1=f(x1);  
        y2=f(x2);  
        cout<<"两端点的值为["<<y1<<","<<y2<<"]"<<endl;  
    }while(y1*y2>=0);  
    x=root(x1,x2);  
    cout<<"在"<<x1<<"与"<<x2<<"之间,方程的解为"<<x<<endl;  
    return 0;  
}  
float f(float x)  
{  
    return(x*x*x-4*x*x+6*x-10);  
}  
float root(float x1,float x2)  
{  
    float y1,x,y;  
    y1=f(x1);  
    do  
    {  
        x=point(x1,x2);  
        y=f(x);  
        if(y*y1>0)  
        {  
            y1=y;x1=x;  
        }  
        else x2=x;  
    }while(fabs(y)>=0.0001);  
    return x;  
}  
float point(float x1,float x2)  
{  
    float y;  
    y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));  
    return y;  
}  

例5.15

#include<iostream>  
using namespace std;  
float Factorial(int n);  
int main()  
{  
    int a;  
    float f;  
    cout<<"input an integer number:";  
    cin>>a;  
    f=Factorial(a);  
    cout<<a<<"!= "<<f<<endl;  
    return 0;  
}  
float Factorial(int n)  
{  
    float fact;  
    if(n==0)  
        fact=1;  
    else  
        fact=n*Factorial(n-1);  
    return fact;  
}  

例5.16

#include<iostream>  
using namespace std;  
const N=8;  
long fibo(int n);  
int main()  
{  
    long f=fibo(N);  
    cout<<"Fibonacci数列第8项的值为:"<<f<<endl;  
    return 0;  
}  
long fibo(int n)  
{  
    if(n==1)  
        return 1L;  
    else if(n==2)return 1L;  
    else  
        return fibo(n-1)+fibo(n-2);  
}  

例5.18

#include<iostream>  
using namespace std;  
int i=1;  
int main()  
{  
    cout<<"i="<<i<<endl;  
    int i=5;  
    cout<<"i="<<i<<endl;  
    {  
        int i=7;  
        cout<<"i="<<i<<endl;  
        cout<<"i="<<::i<<endl;  
    }  
    cout<<"i="<<i<<endl;  
    cout<<"i="<<::i<<endl;  
    return 0;  
}  

例5.21

#include<iostream>  
using namespace std;  
int a=3,b=5;  
int main()  
{  
    int a=8,c;  
    c=a>b?a:b;  
    cout<<c<<endl;  
    return 0;  
}  

例5.22

#include<iostream>  
using namespace std;  
int f(int a)  
{  
    auto int b=0;  
    static int c=3;  
    b++;  
    c++;  
    return (a+b+c);  
}  
int main()  
{  
    int a=2,i;  
    for(i=0;i<3;i++)  
        cout<<f(a)<<endl;  
    return 0;  
}  

例5.23

#include<iostream>  
using namespace std;  
int fun(int);  
int main()  
{  
    int i,k;  
    cout<<"请输入一个非负整数:";  
    cin>>k;  
    for(i=1;i<=k;i++)  
        cout<<i<<"!= "<<fun(i)<<endl;  
    return 0;  
}  
int fun(int n)  
{  
    static int f=1;  
    f=f*n;  
    return f;  
}  

例5.24

#include<iostream>  
using namespace std;  
int fun(int);  
int main()  
{  
    int i,k;  
    cout<<"请输入一个非负整数:";  
    cin>>k;  
    for(i=1;i<=k;i++)  
        cout<<i<<"!= "<<fun(i)<<endl;  
    return 0;  
}  
int fun(int n)  
{  
    register int i,f=1;  
    for(i=1;i<=n;i++)  
    f=f*n;  
    return f;  
}  

例5.25

#include<iostream>  
using namespace std;  
int fun(int);  
int main()  
{  
    int i,k;  
    cout<<"请输入一个非负整数:";  
    cin>>k;  
    for(i=1;i<=k;i++)  
        cout<<i<<"!= "<<fun(i)<<endl;  
    return 0;  
}  
int fun(int n)  
{  
    register int i,f=1;  
    for(i=1;i<=n;i++)  
    f=f*n;  
    return f;  
}  


课本习题

习题1

#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;    
}   


习题2

#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;    
}    



习题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

#include<iostream>
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;    
}   



习题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;    
}    




电脑坏了,刚修好,不好意思哈,,,这么迟才把作业补上

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值