使用新运算符和数组时出错

问题描述

我正在尝试编写一个程序,该程序需要输入自然数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