如有帮助,望采纳。点击我回答右上角【采纳】按钮。
#include<iostream>
#include <stdio.h>
#include <string.h>
#include<math.h>
using namespace std;
#define N 20
int pri[N];
int flag=0;//判断有无素数 无则返回1,有则返回0
int count=0;//素数个数
void prime(int ar[],int n);
main()
{
int a[N];
int i,j,temp;
cout<<"请输入20个整数:"<<endl;
for(i=0; i<N; i++)
scanf("%d",&a[i]);
prime(a,N);
for(i=0; i<count; i++)
for(j=i+1;j<count;j++)
if(pri[i]<pri[j])
{
temp = pri[i];
pri[i] = pri[j];
pri[j] =temp;
}
if(flag == 1)
{
cout<<"排序后输出:"<<endl;
for(i=0; i<count; i++)
cout<<pri[i]<<endl;
}
return 0;
}
void prime(int ar[],int n){
int i,j,m;
for(i=0; i<n; i++){
m=(int)(sqrt(ar[i])+1);
for(j=2; j<=m;j++)
if(ar[i]%j == 0)
break;
if(j>m){
flag=1;
pri[count++]=ar[i];
}
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632