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 18:05:57 浏览: 25
代码存在一些问题,可能会导致程序运行出错。以下是我发现的问题:
1. 第一行的头文件 `#include<iostream)` 中的右括号应该是左括号,应该为 `#include<iostream>`
2. 第 4 行的函数声明 `bool isPrime(int x) !` 中的感叹号应该为左括号,应该为 `bool isPrime(int x) {`
3. 第 7 行的循环条件 `for (int j=1:j<=x/2:j++)` 中的冒号应该为分号,应该为 `for (int j=1;j<=x/2;j++)`
4. 第 9 行的函数返回值 `return false:]` 中的冒号应该为分号,应该为 `return false;`
5. 第 11 行的变量声明 `int n, k-0, m=0;` 中的减号应该为等号,应该为 `int n, k=0, m=0;`
6. 第 13 行的数组声明 `int aln]:` 中的冒号应该为分号,应该为 `int a[n];`
7. 第 14 行的循环条件 `for (int i=0;i<n:itt)` 中的冒号应该为分号,应该为 `for (int i=0;i<n;i++)`
8. 第 17 行的判断条件 `if (isPrime (a[il))mtt:)` 中的冒号应该为左花括号,应该为 `if (isPrime(a[i])) {`
9. 第 18 行的数组声明 `int b [m]:` 中的空格应该去掉,应该为 `int b[m];`
10. 第 19 行的循环条件 `for (int i=0;¡<n;it+)` 中的感叹号应该为小于号,应该为 `for (int i=0;i<n;i++)`
11. 第 20 行的判断条件 `if(isPrime (a[il)) b[k++]=ali]:1` 中的冒号应该为左花括号,应该为 `if(isPrime(a[i])) b[k++]=a[i];`
12. 第 22 行的变量声明 `int 1, c;` 中的数字 1 应该为字母 l,应该为 `int l, c;`
13. 第 25 行的判断条件 `if (blp]<b[t]) tp;` 中的中括号应该为小于号,应该为 `if (b[tp]<b[t]) {`
14. 第 26 行的判断条件 `if(11=t) le-btp]:` 中的等号应该为小于号,应该为 `if (l<t) { b[tp]=b[l]; b[l]=tmp; }`
15. 第 28 行的变量赋值 `bltl=c:l` 中的冒号应该为分号,应该为 `b[l]=c;`
16. 第 29 行的循环条件 `for (int i=0;1<m; it+)` 中的数字 1 应该为字母 l,应该为 `for (int i=0;l<m; i++)`
代码经过修改后应该是这样的:
```
#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];
}
for (int i=0; i<n; i++) {
if (isPrime(a[i])) {
m++;
}
}
int b[m];
for (int i=0; i<n; i++) {
if (isPrime(a[i])) {
b[k++] = a[i];
}
}
int tmp, l, c;
for (int t=0; t<m; t++) {
l = t;
for (int p=t+1; p<m; p++) {
if (b[p] < b[t]) {
l = p;
}
}
if (l != t) {
tmp = b[t];
b[t] = b[l];
b[l] = tmp;
}
}
for (int i=0; i<m; i++) {
cout << b[i] << " ";
}
return 0;
}
```