素数排序函数c语言 c++素数升序排序

有一道C++题目:输入n个正整数,将其中的素数按升序排序 。要求:用两个函数fun1和fun2#includeiostream
using namespace std;
int fun1(int n)
{
int i,gs=0;
if (n==1) return 0;
if (n==2) return 1;
for(i=2; i=n/2; i++)
if(n%i==0) return 0;
return 1;
}
void fun2(int x[100],int y)
{
int i,j,t;
for(i=0; iy; i++)
for(j=0; jy-1; j++)
if(x[j]x[j+1])
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
}
}
int main()
{
int a[100],n,b[100], m=0,i;
cinn;
for(i=0; in; i++)
cina[i];
for(i=0; in; i++)
if(fun1(a[i])==1)
{
b[m]=a[i];
m++;
}
fun2(b,m);
for(i=0; im; i++)
coutb[i];
}
用C语言编写自定义函数:(1)素数判断函数:是返回1,否则返回0
int prime(int n){
int i;
if(n2!(n1) || n2)
return 0;
for(i=3;i*i=n;i+=2)
if(!(n%i))
return 0;
return 1;
}
(2)编写排序函数(冒泡排序、选择排序)
void bubbling(int *p,int n){//冒泡
int i,j,k;
for(i=0;in;i++)
for(j=1;jn;j++)
if(p[j]p[j-1])
k=p[j],p[j]=p[j-1],p[j-1]=k;
}
void select(int *p,int n){//选择
int i,j,k;
for(n--,i=0;in;i++){
for(k=i,j=k+1;j=n;j++)
if(p[k]p[j])
k=j;
if(k-i)
j=p[k],p[k]=p[i],p[i]=j;
}
}
(3)查找函数,找到返回下标 , 否则返回-1
int find(int *p,int n,int x){//顺序
int i;
for(i=0;in;i++)
if(p[i]==x)
return i;
return -1;
}
int fihalf(int *p,int n,int x){//折半,升序为例
int l,r,m;
l=0,r=n-1;
while(m=(l+r)1,lrp[m]-x)
p[m]x ? l=m+1 : r=m-1;
return p[m]==x ? m : -1;
}
(4)插入函数 , 升序为例
求素数(C语言)用函数#includestdio.h
int sushu(int z);/*函数声明最好放在外面,放到文件前端*/
void main()
{
int b,a;
printf("enter a date:\n");
scanf("%d",b);
a=sushu(b);
if(a==0||b==0)
printf("no\n");
else
printf("yes\n");
}
int sushu(int z)
{
int i , j;/*i和返回值要分开 , i要做循环标尺的*/
for(i=2;iz;i++)
{
if(z%i==0)
{
j=0;
break;/*一旦发现不是素数 , 跳出for循环*/
}
else
j=1;/*如果用i,就是个死循环,如果是素数 , 每次你把i=1后for循环一直继续*/
}
return j;
}
c语言10-100素数筛选用函数#include stdio.h
#include math.h
int prime(int n)
{
int i, k = sqrt(n);
for (i = 2;i = k; i++)
if (n%i == 0)
return 0;
return 1;
}
int main()
{
【素数排序函数c语言 c++素数升序排序】int n, i, m=0;
for(n = 11; n = 100; n = n+2)
{
if (prime(n))
{
printf("%d ",n);
m=m+1;
if(m%5==0)
printf("\n");
}
}
printf("\n");
return 0;
}
关于素数排序函数c语言和c++素数升序排序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读