C++ 1 Finclude<iostream) 2 using namespace std; 3 4 bool isPrime (int x) ! 5 6 7 for (int j=1:j<=x/2:j++) if (x%j-0)return true: 8 9 return false:] 10 int main() ! 11 int n, k-0, m=0; 12 cin) ›n; 13 int aln]: 14 for (int i=0;i<n:itt) 15 cin)›ali]; 16 for (int i=0;i<n;i#) { 17 if (isPrime (a[il))mtt:) 18 int b [m]: 19 for (int i=0;¡<n;it+) { 20 if(isPrime (a[il)) b[k++]=ali]:1 21 int 1, c; 22 for (int t=0:tsm:t++){ 23 1=t: 24 25 for (int D=t+1:p<nt1:p++)1 if (blp]<b[t]) tp; 26 if(11=t) le-btp]: 27 blp=b[t]; 28 bltl=c:l 29 for (int i=0;1<m; it+) 30 cout<<b[i]<<" 31 return 0 32 }} 33 34 35 字体大小一 控制台
时间: 2024-01-09 07:05:28 浏览: 140
这是一个 C++ 程序,用于找出输入的一组数字中的所有质数,并按从小到大的顺序输出这些质数。
其中 isPrime 函数用于判断一个数字是否为质数,如果是质数则返回 true,否则返回 false。
程序首先读入一个整数 n,表示接下来将输入 n 个数字。然后通过循环读入这 n 个数字,将其中的质数存储在数组 b 中,并记录质数的个数为 m。
接着,程序使用冒泡排序算法将数组 b 中的质数按从小到大的顺序排序,并输出排序后的结果。
最后,程序返回 0 表示正常退出。
需要注意的是,程序中的一些语句存在语法错误,例如第 4 行中的感叹号应该改为左括号,第 7 行中的冒号应该改为分号,第 20 行中的 1 应该改为 i,第 26 行中的等号应该改为小于号。正确的程序应该是这样的:
```c++
#include <iostream>
using namespace std;
bool isPrime(int x) {
for (int j = 2; j <= x / 2; j++) {
if (x % j == 0)
return false;
}
return true;
}
int main() {
int n, k = 0, m = 0;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int b[n];
for (int i = 0; i < n; i++) {
if (isPrime(a[i])) {
m++;
b[k++] = a[i];
}
}
for (int i = 0; i < m; i++) {
for (int j = i + 1; j < m; j++) {
if (b[j] < b[i]) {
int temp = b[i];
b[i] = b[j];
b[j] = temp;
}
}
}
for (int i = 0; i < m; i++) {
cout << b[i] << " ";
}
return 0;
}
```
阅读全文