c++程序设计,从任意一组正整数中找出素数,计算素数之和,并按从大到小顺序排序。输出分2行:第一行为

2025-03-13 21:52:56
推荐回答(2个)
回答1:

#include
using namespace std;
int f(int x){//判断素数
int i,n=1;

for (i = 2; i
if (x%i == 0)
n=0;
}
if(x==1) n=0;

return n;

}
int main()
{
int n,t, a[100],j, k=0,b[100],i = 0,sum=0;
while (1)//这里不能用你的输入格式
{
cin >> a[i];
if (a[i] == 0) break;

if (f(a[i])) {

sum+= a[i]; //素数存入另一个数组中
b[k++]=a[i];
b[k]='\0';
}
i++;
}
cout<<"素数之和为 "<
for (i = 0; i for (j = 0; j if (b[j] < b[j+1]){//排序
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
}

cout<<"素数排序为:";
for (i = 0; i {
cout < }
cout< return 0;
}

拙见,望采纳

回答2:

#include
using namespace::std;
int ok(int x){//判断素数
int i;
for (i = 2; i return 1;
}
int main()
{
int n, a[256],j, i = 0,sum=0;
while (1)
{
cin >> a[i];
if (a[i] == 0) break;//输入0,结束
i = i + 1;

if (ok(i)) sum += a[i];
}
n = i;
for (i = 0; i for (j = 0; j if (a[i] < a[i + 1])swap(a[i], a[i + 1]);
for (i = 0; i {
cout << a[i] << endl;
}
return 0;
}