项目4:数组素数排序
定义一个有10个的数组a,将数组a中的所有素数放在数组b,再对数组b排序
<strong>#include <iostream>
using namespace std;
void sort(int p[], int n) //数组排序
{
int j,i,t;
for(i=0;i<n-1;i++)
for(j=0;j<(n-1)-i;j++)
{
if(p[j]>p[j+1])
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}
}
bool prime(int x) //素数判断
{
int i,n;
for(i=2;i<n;i++)
{
if(n%i==0)
return 0;
}
return 0;
}
void print(int p[],int n)//输出数组
{
int m;
for(m=0;m<n;m++)
cout<<p[m]<<" ";
cout<<endl;
}
int main( )
{ int a[10]={2,13,5,47,19,53,27,23,28,11};
int b[10],i,j=0;
for(i=0;i<10;i++)//将a中的素数存入b数组
{
if(prime(a[i])==0)
{
b[j]=a[i];j++;
}
}
print(b,j); //输出排序前的b数组
sort(b,j); //对数组b排序
print(b,j); //输出排序后的b数组
return 0;
}
</strong>
项目2:最大公约和和最小公倍数
从键盘中输入两个整数,求这两个整数的最大公约数和最小公倍数,最大公约数采用的算法是辗转相除法(具体算法可用百度)。其中编写自定义函数实现求最大公约数和最小公倍数
#include <iostream>
using namespace std;
int max(int a,int b)
{
int m;
if(a>b)
{
m=a;
a=b;
b=m;
}
while(b!=0)
{
m=a%b;
a=b;
b=m;
}
return a;
}
int min(int a,int b)
{
int k;
k=a*b/max(a,b);
return k;
}
int main()
{
int x,y;
cin>>x>>y;
cout<<"最大公约数:"<<max(x,y)<<endl;
cout<<"最小公倍数:"<<min(x,y)<<endl;
return 0;
}