习题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;
}
/********************************************
**** 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;
}