问题描述
我正在尝试编写一个程序,该程序需要输入自然数n,创建n个自然数的数组,将数组中的所有素数都替换为零,然后将结果数组打印到屏幕上,但是以找不到命令,请向我解释我做错了什么
#include <iostream>
int main() {
int *arr ;
int n;
for(int i = 0;i < n ;i++ ){
std::cin>>n;
}
arr = new int [n];
for(int i = 0;i < n ;i++ ){
if(arr[i] % arr[i]/2 == 0 ){
std::cout << arr[i];
} else {
arr[i] = 0;
std::cout<< arr[i];
}
}
}
解决方法
首先,您的代码未获取n
的值,您应该cin>>n
然后使用for循环获取整个数组。另外,arr[i] % arr[i]/2
始终为零,因为arr[i] %arr[i]
为零。您应该知道如何检查数字是否为质数。这是link。