第五章作业。

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


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
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值