第七周和第八周剩余的全部作业

来源:互联网 发布:动画视频制作软件 编辑:程序博客网 时间:2024/04/29 17:34

课后习题一

#include<iostream>#include<cmath>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;                    //s2赋值为s1,s2=0.5*(1.0+x)s1=(s2+x/s2)*0.5;         //s1重新赋值为(s2+x/s2)*0.5其中s2=0.5*(1.0+x)}while(fabs(s2-s1)>1.0E-6);   //如果fabs(s2-s1)>1.0E-6依旧成立就继续执行do while函数                                  //否则结束循环返回s1到主函数    return s1;}

课后习题二

#include<iostream>using namespace std;long intPower(int base,int exponent);int main(){    int base,exponent;cout<<"输入一个函数:"<<endl;cin>>base;cout<<"输入该函数的次幂:"<<endl;cin>>exponent;cout<<endl;cout<<"该幂整数的值是:"<<intPower(base,exponent)<<endl;;return 0;}long intPower(int base,int exponent){    long a;int i;a=1;for(i=1;i<=exponent;i++)a*=base;return a;}


课后习题3

#include<iostream>using namespace std;int panduan(int b);int main(){    int a;cout<<"输入一个正整数:"<<endl;cin>>a;if(panduan(a)==1)    cout<<a<<"是一个素数"<<endl;elsecout<<a<<"不是一个素数"<<endl;return 0;}int panduan(int b){    int yushu=1;for(int i=2;i<b;i++){    yushu=b%i;if(yushu==0)   break;}    return yushu;}



课后习题4

#include<iostream>using namespace std;int fan (int b);int main(){    int a;cout<<"输入一个正整数:"<<endl;cin>>a;cout<<"该正整数的反向输出的正整数是:"<<fan(a)<<endl;    return 0;}int fan(int b){     int c=1,a,p,sum=0; p=b; for(int i=1;p!=0;i++) p/=10; for(int k=i;k>1;k--) //因为上述i++得到的i比输入的值多了一位,所以k是大于1而不是0 c*=10; for(int j=i;j>1;j--)  {    a=b%10;     b/=10; c/=10; sum+=a*c; }     return sum;}


课后习题5

#include<iostream>using namespace std;char zifu(int a);int main(){      int shuzi; cout<<"输入一个百分制分数:"<<endl; cin>>shuzi;     cout<<"该百分之分数对应的等级代号字符是:"<<zifu(shuzi)<<endl;     return 0;}char zifu(int a){    char b;    b=char(a);    return b;}


课后习题6

#include<iostream>using namespace std;double average(int n);void main(){cout<<"十个学生的平均成绩是:"<<average(10)<<endl;}double average(int n){cout<<"输入十个学生的成绩:"<<endl;double sum=0,aver,chengji;for(int i=0;i<n;i++){cin>>chengji;sum+=chengji;}aver=sum/10;return aver;}


课后习题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;elsegy_max(min,res);}int gb_min(int p,int q){    int x;x=p*q/gy_max(p,q);     return x;}



方法二

#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,min,res;max=m>n?m:n;    min=m<n?m:n;if(max%min==0)return min;while(max%min!=0)    {res=max%min;max=min;min=res;}return 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 biao();void ys_up();void ys_down();int main(){cout<<"输出9行9列乘法表:"<<endl;biao();cout<<endl<<endl;    cout<<"输出乘法表中主对角线以上的元素:"<<endl;ys_up();cout<<endl<<endl;    cout<<"输出乘法表中主对角线以下的元素:"<<endl;    ys_down();return 0;}void biao(){   int i,j,chengji=0;   for(i=1;i<=9;i++)   {   for(j=1;j<=9;j++)   {       chengji=i*j;       cout<<i<<"*"<<j<<"="<<chengji<<"  ";       if(chengji<=9)   cout<<" ";   }   cout<<endl;   }}void ys_up(){int i,j,chengji=0;   for(i=1;i<=9;i++)   {   for(j=1;j<=9;j++)   {   chengji=i*j;   if(j<i)   cout<<"        ";    else   {   cout<<j<<"*"<<i<<"= "<<chengji<<" ";       if(chengji<=9)       cout<<" ";   }      }      cout<<endl;   }}void ys_down(){int i,j,chengji=0;   for(i=1;i<=9;i++)   {   for(j=1;j<=i;j++)   {       chengji=i*j;       cout<<j<<"*"<<i<<"= "<<chengji<<" ";      }   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;   //a=0,b=-10,n=1.a是静态存储变量自动赋值为0,b赋值为-10;b+=4; func();                                    //a=4,b=10,n=13.因为在func()内a,b是局部变量,所以输出的也是局部变量    cout<<"a:"<<a<<"\tb:"<<b<<"\tn:"<<n<<endl;   //a=0,b=-6,n=13.因为n是全局变量所以输出的是改变了值的全局变量n+=10;                                     func();                                    //a=6,b=10,n=35.因为a是静态存储变量初值是4,b是动态存储变量重新赋初值5                                               //因为n是全局变量,所以一直叠加到35  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;    /*第一次运行时:a=4,b=10,n=13.运行一次的时候a=4,运行两次的时候a=6每运行一次a的值都加2*/}



矩阵的题

#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 q(int b);int p(int a);int main(){    int n;cout<<"输入一个n的值:"<<endl;cin>>n;cout<<"计算S[n]=1!+2!+3!+...n!后的值是:"<<q(n)<<endl;    return 0;}int q(int b){    int i,sum=0;for(i=1;i<=b;i++)sum+=p(i);    return sum;}int p(int a){    int chengji=1;int i;for(i=1;i<=a;i++)chengji*=i;return chengji;}


题三 十六进制转化为十进制输出

#include<iostream>using namespace std;int zhuanhua(int b);int main(){   int a;   cout<<"输入一个十六进制数:"<<endl;   cin>>hex>>a;   cout<<"此十六进制数对应的十进制数:"<<zhuanhua(a)<<endl;   return 0;}int zhuanhua(int b){   return b;   }



0 0