#include<bits/stdc++.h> using namespace std; bool zs(int c) { bool a=1; for(int i=2;i<=sqrt(c);i++) { if(c%i==0) a=0; } return a; } int main() { int a[100001],b; scanf("%d%d",&b,a); for(int i=0;i<b;i++) { int c=a[i]; if(zs(c)) printf("%d",a[i]); } return 0; }有什么问题
时间: 2023-12-01 19:02:42 浏览: 44
C++ using namespace std 详解
3星 · 编辑精心推荐
这段代码的问题是在输入时没有使用循环,只接受了一个整数作为数组的长度,并将第二个参数作为第一个数组元素的值,因此无法正确地输入整个数组。应该使用循环来逐个输入数组元素。
另外,在输出质数时应该换行,否则所有质数会输出在同一行中。
以下是修改后的代码:
```
#include<bits/stdc++.h>
using namespace std;
bool zs(int c) {
for(int i=2;i<=sqrt(c);i++) {
if(c%i==0)
return false;
}
return true;
}
int main() {
int b;
scanf("%d",&b);
int a[b];
for(int i=0;i<b;i++) {
scanf("%d",&a[i]);
}
for(int i=0;i<b;i++) {
if(zs(a[i]))
printf("%d\n",a[i]);
}
return 0;
}
```
阅读全文