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;
else
cout<<"这个数字不是素数"<<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';
else
cout<<j<<"*"<<i<<"="<<i*j<<'\t';
cout<<endl;
}
}
(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;
}
。