c++ - 使用 operator-new 和数组时出错
问题描述
我正在尝试编写一个程序,该程序需要输入一个自然数 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]
是零。你应该知道如何检查一个数字是否是素数。这是一个 链接。
推荐阅读
- macros - 为什么nasm printf char而不是string?
- python - 在 Pytorch 中推进索引以摆脱嵌套的 for 循环
- javascript - 每当我尝试在 VScode 终端中运行 cypress run --record --key xxxx 时,我都会收到一条错误消息
- vba - .docm 字段更新速度问题?
- android - OpenGL 支持 Android 视图吗?
- javascript - 播放一组 mp3 文件
- apache-kafka - Kafka Connect Vertica Sink 连接器端口问题
- azure-cosmosdb - 作为一个原子操作插入到 azure cosmos db 中的多个容器
- php - 导入变体 wp all import
- javascript - 分层 div 不显示在图层中