第五章作业。

来源:互联网 发布:得力条码机编辑软件 编辑:程序博客网 时间:2024/06/05 17:32

2. 不用库函数,自己编写求整数次幂的函数long inpower(int base, int exponent),求base的exponent的次幂。

#include<iostream>using namespace std;long intPower(int base, int exponent);int main(){long n;int base,exponent;cout<<"请输入基数和次幂"<<endl;cin>>base>>exponent;    n=intPower(base,exponent);cout<<"运算结果如下"<<endl<<n<<endl;}long intPower(int base,int exponent){   long result=1;    int i;    if(exponent==0&&base!=0)result=1;   // 多余了。if(exponent!=0)for(i=0;i<exponent;i++)result*=base;return result;}


 

3.编写一个函数判断一个正整数是否是素数的函数。

 

#include<iostream>using namespace std;int abc(int n);int main(){   int a;    cout<<"请输入一个大于1的正整数"<<endl;cin>>a;if(a<=1){cout<<"数字错误"<<endl;return 0;}if(abc(a))       cout<<"这个数字是素数"<<endl;elsecout<<"这个数字不是素数"<<endl;return 0;int abc(int n){   int c=1,i;    for(i=2;i<n/2&&c==1;i++)if(n%i==0)c=0;return c;}


4.编写一个函数,返回与所给十进制正整数数字顺序相反的整数。如已知整数是1234,函数的返回值是4321,并加以测试。

#include<iostream>using namespace std;int abc(int);int main(){int a,b;cout<<"请输入十进制正整数"<<endl;cin>>a;b=abc(a);cout<<"反向输出为:"<<b<<endl;return 0;}int abc(int a){int i,m=a;for(i=1;;){  m/=10;if(m==0) break;i*=10;}    if(i==1)    return a;int c=i;int j,s[10];for(j=0;c!=0;j++){s[j]=a/c;a=a-s[j]*c;c/=10;}for(j=j-1;j>=0;j--){        a+=s[j]*i;i/=10;}return a;}

5.编写一个函数,按所给的百分制分数,返回与改分数对应的等级代号分数,并加以测试。

#include<iostream>using namespace std;char abc(int);int main(){int a;cout<<"请输入分数"<<endl;cin>>a;char b=abc(a);cout<<"它对应的等级为"<<b<<endl;return 0;}char abc(int x){char b;if(x>=85)b='A';if(x<85&&x>=70)        b='B';if(x<70&&x>=60)b='C';if(x<60)b='D';return b;}

6.编写一个函数,内放10个学生的成绩,求平均成绩,并加以测试。

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

 7.写两个函数,分别求两个整数的最大公约数和最小公倍数。用主函数调用这两个函数,并输出结果,两个整数由键盘输入。



8.编写三个函数以三种不同的方式输出乘法口诀表                  ////// 照书上打的 不会写。

(1)将9行9列乘法表全部输出。

(2)输出乘法表中主对角线以上的元素。

(3)输出乘法表中主对角线一下的元素。

#include<iostream>using namespace std;void mt1();void mt2();void mt3();int main(){mt1();cout<<endl;    mt2();cout<<endl;mt3();return 0;}void mt1(){cout<<"九九乘法表一:"<<endl;for(int i=1;i<10;i++){for(int j=1;j<10;j++)cout<<j<<"*"<<i<<"="<<i*j<<'\t';cout<<endl;}}void mt2(){cout<<"九九乘法表二:"<<endl;for(int i=1;i<10;i++){for(int j=1;j<=i;j++)cout<<j<<"*"<<i<<"="<<i*j<<'\t';cout<<endl;}}void mt3(){cout<<"九九乘法表三:"<<endl;for(int i=1;i<10;i++){for(int j=1;j<10;j++)if(j<i)cout<<'\t';elsecout<<j<<"*"<<i<<"="<<i*j<<'\t';cout<<endl;}}


9. 编程求出三个整形数中的最大值、最小值及平均值,要求三个整数在main函数中输出,最大值、最小值及平均值由函数求出。要求分别用以下三种方式实现主函数与被调用函数之间的数据传递。

(1)值调用;

(2)引用调用;

(3)全局变量。                                                                                                               ////// 照书上打的 不会写。

                                        


(1)

#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<<"请输入三个整数:"<<endl;cin>>a>>b>>c;cout<<a<<"、"<<b<<"、"<<c<<"三个数的最大值为:"<<max(a,b,c)<<endl    <<a<<"、"<<b<<"、"<<c<<"三个数的最小值为:"<<min(a,b,c)<<endl<<a<<"、"<<b<<"、"<<c<<"三个数的平均值为:"<<average(a,b,c)<<endl;return 0;}int max(int a,int b,int c){int maxValue=a;if(b>a&&b<c)maxValue=b;else if(c>a&&c>b)maxValue=c;return maxValue;}int min(int a,int b,int c){int minValue=a;if(b<a&&b<c)minValue=b;else if(c<a&&c<b)minValue=c;return minValue;}float average(int a,int b,int c){return(a+b+c)/3.0;}

(2)

#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<<"请输入三个整数:"<<endl;cin>>a>>b>>c;cout<<a<<"、"<<b<<"、"<<c<<"三个数的最大值为:"<<max(a,b,c)<<endl    <<a<<"、"<<b<<"、"<<c<<"三个数的最小值为:"<<min(a,b,c)<<endl<<a<<"、"<<b<<"、"<<c<<"三个数的平均值为:"<<average(a,b,c)<<endl;return 0;}int max(int& a,int& b,int& c){int maxValue=a;if(b>a&&b>c)maxValue=b;else if(c>a&&c>b)maxValue=c;return maxValue;}int min(int& a,int& b,int& c){int minValue=a;if(b<a&&b<c)minValue=b;else if(c<a&&c<b)minValue=c;return minValue;}float average(int& a,int& b,int& c){return(a+b+c)/3.0;}

(3)

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

0 0
原创粉丝点击