第五章作业

来源:互联网 发布:wow7.3数据库 编辑:程序博客网 时间:2024/06/06 01:44

课本例题

例题三

/*****求圆的面积****/#include<iostream>using namespace std;double circlearea(double);int main(){double r;cout<<"请输入圆的半径 ";cin>>r;double area=circlearea(r);cout<<"圆的面积="<<area<<endl;return 0;}double circlearea(double r){double pi=3.14;double area=pi*r*r;return area;}


例题四

/******求两个数的和****/#include<iostream>using namespace std;int sum(int,int);int main(){int a,b,c;cout<<"请输入两个数";cin>>a>>b;c=sum(a,b);cout<<a<<"+"<<b<<"="<<c<<endl;return 0;}int sum(int a,int b){int sum;sum=a+b;return sum;}


 

例题13

#include<iostream>using namespace std;int f2(int);int f1(int q){int k;long r;k=q*q;r=f2(k);return r;}int f2(int p){int i,fact=1;for(i=1;i<=p;i++)fact*=i;return fact;}int main(){long sum=0,n;cout<<"请输入要计算的到的数,从2开始 ";cin>>n;for(int i=2;i<=n;i++)sum+=f1(i);cout<<"sum="<<sum<<endl;return 0;}

 

 

例题14

/****求3次方程的解***/#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;}


 

例题25

/*****全局变量****/#include<iostream>using namespace std;int a;int power(int n);int main(){int b=3,c,d,m;cout<<"enter a and m:"<<endl;cin>>a>>m;c=a*b;cout<<"a="<<a<<"\tb="<<b<<"\tc"<<c<<endl;d=power(m);cout<<"a="<<a<<"\tm"<<m<<"\td="<<d<<endl;return 0;}extern int a;int power(int n){int i,y=1;for(i=1;i<=n;i++)y*=a;return y;}


 

练习题2

/****求整数的幂的值****/#include<iostream>using namespace std;long power(int base,int exponent);int main(){int a,b,c;cout<<"请输入底数和幂"<<endl;cin>>a>>b;c=power(a,b);cout<<"a的"<<"m次方为"<<c<<endl;return 0;}long power(int base,int exponent){int i,y=1;for(i=1;i<=exponent;i++)y*=base;return y;}


 

练习3

/****判断一个数是否为质数*****/#include<iostream>using namespace std;int zhishu(int n);int main(){int a;cout<<"请输入一个大于1的整数";cin>>a;zhishu(a);return 0;}int zhishu(int n){for(int i=2;i<=n;i++)if(n%i==0)break;if(i==n)cout<<n<<"是一个质数"<<endl;elsecout<<n<<"不是一个质数"<<endl;return 0;}


 

练习4

/******十进制数的顺序相反数*****/#include<iostream>using namespace std;int xiangfan(int);int main(){int number,result;cout<<"请输入一个正整数";cin>>number;result=xiangfan(number);cout<<number<<" 的逆序数为 "<<result<<endl;return 0;}int xiangfan(int n){int i=1,m=n;while(m>10){m/=10;i*=10;}int j,a[20],temp=i;for(j=0;temp!=0;j++){a[j]=n/temp;n=n-a[j]*temp;temp/=10;}for(j=j-1;j>=0;j--){n+=a[j]*i;i/=10;}return n;}

 

 

练习5

/*****百分制成绩等级*******/#include<iostream>using namespace std;char grade(int);int main(){int score;cout<<"请输入成绩0到100";cin>>score;char ch=grade(score);cout<<score<<"对应的等级为 "<<ch<<endl;return 0;}char grade(int n){char ch;if(n>=90&&n<=100) ch='A';else if(n>=80) ch='B';else if(n>=70) ch='C';else if(n>=60) ch='D';else ch='E';return ch;}


 

练习6

/******学生的平均成绩*******/#include<iostream>using namespace std;int average();int main(){float aver=average();cout<<"学生的平均成绩为"<<aver<<endl;return 0;}int average(){float a[10],sum=0,average;cout<<"请输入10个学生的成绩";for(int i=0;i<10;i++){cin>>a[i];sum+=a[i];}average=sum/10;return average;}


 

练习1

 

/*****求最小公倍数与公约数******/#include<iostream>using namespace std;int yue(int m,int n);int bei(int m,int n);int main(){int m,n,b,y;cout<<"请输入两个正整数";cin>>m>>n;y=yue(m,n);b=bei(m,n);cout<<m<<"和"<<n<<"的最大公约数为 "<<y<<endl;cout<<m<<"和"<<n<<"的最大公倍数为 "<<b<<endl;return 0;}int yue(int m,int n){int temp,l;if(m>n){temp=m;m=n;n=temp;}while((l=n%m)!=0){n=m;m=l;}return m;}int bei(int m,int n){int k=yue(m,n);return m*n/k;}


 

练习8

/*******打印三种方式的九九乘法表******/#include<iostream>using namespace std;void f1();void f2();void f3();int main(){f1();cout<<endl;f2();cout<<endl;f3();cout<<endl;return 0;}void f1(){cout<<"九九乘法表一: "<<endl;for(int i=1;i<10;i++){for(int j=1;j<10;j++)cout<<j<<"*"<<i<<"="<<j*i<<'\t';cout<<endl;}}void f3(){cout<<"九九乘法表二: "<<endl;for(int i=1;i<10;i++){for(int j=1;j<=i;j++)cout<<j<<"*"<<i<<"="<<j*i<<'\t';cout<<endl;}}void f2(){cout<<"九九乘法表三: "<<endl;for(int i=1;i<10;i++){for(int j=1;j<10;j++)if(j<i)cout<<'\t';elsecout<<j<<"*"<<i<<"="<<j*i<<'\t';cout<<endl;}}


 

练习9

/*****使用值调用****/#include<iostream>using namespace std;int max(int,int,int);int min(int,int,int);float average(int,int,int);int main(){int a,b,c;cout<<"请输入三个整数 ";cin>>a>>b>>c;cout<<a<<"."<<b<<"."<<c<<"三个数的最大值为 "<<max(a,b,c)<<endl;cout<<a<<"."<<b<<"."<<c<<"三个数的最小值为 "<<min(a,b,c)<<endl;cout<<a<<"."<<b<<"."<<c<<"三个数的平均值为 "<<average(a,b,c)<<endl;return 0;}int max(int a ,int b,int c){int max=a;if(b>a&&b>c)max=b;else if(c>a&&c>b)max=c;return max;}int min(int a ,int b,int c){int min=a;if(b<a&&b<c)min=b;else if(c<a&&c<b)min=c;return min;}float average(int a ,int b,int c){float aver=(a+b+c)/3.0;return aver;

 

练习9(2)

/******使用全局变量********/#include<iostream>using namespace std;int a,b,c;int max();int min();float average();int main(){cout<<"请输入三个整数 ";cin>>a>>b>>c;cout<<a<<"."<<b<<"."<<c<<"三个数的最大值为 "<<max()<<endl;cout<<a<<"."<<b<<"."<<c<<"三个数的最小值为 "<<min()<<endl;cout<<a<<"."<<b<<"."<<c<<"三个数的平均值为 "<<average()<<endl;return 0;}int max(){int max=a;if(b>a&&b>c)max=b;else if(c>a&&c>b)max=c;return max;}int min(){int min=a;if(b<a&&b<c)min=b;else if(c<a&&c<b)min=c;return min;}float average(){float aver=(a+b+c)/3.0;return aver;}


4.编程计算S[n]=1!+21+3!+...n!。要求定义两个函数,一个计算n!,一个计算s[n],在后一个函数中调用前一个函数。然后在主程序中输入数n的值,然后调用定义函数输出结果。

 

/*****计算S[n]=1!+2!=n!的值*********/#include<iostream>using namespace std;int f1(int);int f2(int);int main(){int n,a;cout<<"请输入要计算到的数的值  ";cin>>n;a=f2(n);cout<<"这些数的和为"<<a<<endl;return 0;}int f1(int p){long fact=1;for(int i=1;i<=p;i++)fact*=i;return fact;}int f2(int q){long sum=0;for(int i=1;i<=q;i++)sum+=f1(i);return sum;}


0 0
原创粉丝点击