c++第七周作业(课本习题)

习题2:

/**************************************************
****    5_2求整数次幂函数long intPower()    ****
***************************************************/

# include<iostream>
using namespace std;

long intPower(int base, int exponent);

int main()
{
	int i, a, n;
	cout<<"计算a的n次方,请输入a和n:";
	cin>>a>>n;
	i = intPower(a, n);
	cout<<"a的n次方是:"<<i<<endl;

	return 0;
}

long intPower(int base, int exponent)
{
	long int i, j = 1;
	for(i = 0; i < exponent; i++)
		j *= base;
	return j;
}


习题3:

/********************************************
****    5_3判断一个正整数是否为素数    ****
*********************************************/

# include<iostream>
# include<cmath>
using namespace std;

void Prime(int number);

int main()
{
	int number;
	cout<<"请输入一个正整数:"<<endl;
	cin>>number;
	Prime(number);

	return 0;
}

void Prime(int number)
{
	bool m = true;
	int i, j;
	if(number < 0)   cout<<"您输入的数不合法:"<<endl;
	if(number == 1)  cout<<"这个数既不是合数也不是素数:"<<endl;
	i = sqrt(number);              //从2到这个数的开根数都没有整除的数则这个数是素数
	for(j = 2; j <= i; j++)
		if(number % j == 0)
		{m = false; break;}
	if(m)
		cout<<"您输入的数是素数"<<endl;
	else
		cout<<"您输入的数不是素数"<<endl;

}


习题4:

/*****************************************************************
****    5_4返回与所给十进制正整数顺序相反的整数    ****
******************************************************************/

# include<iostream>
using namespace std;

int contrary(int num);

int main()
{
	int num, con;
	cout<<"请输入一个正整数:"<<endl;
	cin>>num;
	con = contrary(num);
	cout<<"所得数为:"<<con<<endl;

	return 0;
}

int contrary(int num)             //使正整数顺序相反函数
{
	int i, j, k, L = 1, a, b, sum = 0;
	k = num;
	for(i = 0; k != 0; i++)             //获得输入整数的位数,如321,i就为3		
	{
		k /= 10;
		L *= 10;         //10的i-1次方                   
	}
	for(j = i; j > 0; j--)
	{
		a = num % 10;
		num /= 10;
		L /= 10;
		sum += a * L; 
	}
	return sum;
}

习题5:

/**************************************************
****    5_5百分制分数并分等级    ****
***************************************************/

# include<iostream>
using namespace std;

void Gra(int score)
{
	if(score >= 90) cout<<"优秀"<<endl;
	if(score >= 60 && score < 90) cout<<"中等"<<endl;
	if(score >= 60 && score < 75) cout<<"及格"<<endl;
	if(score < 60) cout<<"不及格"<<endl;
}

int main()
{
	int score;
	cout<<"请输入您的分数:"<<endl;
	cin>>score;
	Gra(score);

	return 0;
}

习题6:

/****************************************
****    5_6求10位学生成绩平均分    ****
*****************************************/

#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:

/*********************************************************
****    5_7求两个整数的最大公约数和最小公倍数    ****
**********************************************************/

# include<iostream>
using namespace std;

int GreatestCD(int num_1, int num_2);            //求两个数的最大公约数
int LeastCM(int num_1, int num_2);            //求两个数的最小公倍数

int main()
{
	int a,b;  
    cout<<"输入两个整数:"<<endl;  
    cin>>a>>b;  
    cout<<"求得两个整数的最大公约数是:"<<GreatestCD(a,b)<<endl;  
    cout<<"求得两个整数的最小公倍数是:"<<LeastCM(a,b)<<endl;  

	return 0;
}


int GreatestCD(int num_1, int num_2)
{
	int max, min;
	max = num_1 > num_2 ? num_1 : num_2;
	min = num_1 < num_2 ? num_1 : num_2;
	int res;
	res = max % min;
	if(res == 0)
		return min;
	else
		GreatestCD(min, res);
}


int LeastCM(int num_1, int num_2)
{
	int x;
	x = num_1 * num_2 / GreatestCD(num_1, num_2);
	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;  
}  




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值