查找质数 1-100 并将它们写入文件
Finding prime numbers 1-100 and write them to file.
有人可以帮我弄清楚如何找到 1-100 之间的所有质数并将它们写入文件吗?
#include<iostream>
#include<fstream>
using namespace std;
bool isPrime(int);
int main()
{
int iNum;
cout << "This program will calculate and store all the prime numbers between 1 and
100 "<<endl;
ofstream myfile( "writeto.txt" );
for(int i = 1; i <= 100; i++)
{
isPrime(i);
while(isPrime(i) == true)
{
myfile << i <<endl;
break;
}
myfile.close();
return 0;
}
}
bool isPrime(int iNum)
{
bool status;
if( iNum <= 1 )
return false;
for( int i = 2; i < iNum; i++ )
{
if( iNum % i == 0 )
return false;
}
return true;
}
我怎样才能让它工作?我已经为此工作了一段时间,并认为它必须与我的回归有关。我真的很迷茫,希望有人能帮助我。我不是在寻找答案,我只是想有人为我指出正确的方向。
您的牙套似乎放错了位置
break;
}
myfile.close();
return 0;
}
}
应该是
break;
}
}
myfile.close();
return 0;
}
附言和if
而不是 ThinTim 发现的while
,以及他提到的其他问题。但鉴于break
声明,这是导致主要(双关语)问题的原因。
您的大括号集会导致程序在 1 个数字后退出(如果它不是素数)和挂起(如果是)。
你的while
应该是一个if
。
你不需要那个break
语句。
在循环中对isPrime
的第一次调用不执行任何操作。
当你写数字时,你应该将数字转换为字符。
正如Karthik所提到的,您的括号未正确关闭。
在将问题发布到StackOverflow之前,您应该进行更多的审查。
for(int i = 1; i <= 100; i++)
{
isPrime(i);
while(isPrime(i) == true)
{
myfile << i <<endl;
break;
}
myfile.close();
return 0;
}
返回 0; 会让你在第一个素数后退出程序...
正确的是
for(int i = 1; i <= 100; i++)
{
if(isPrime(i)) {
myfile << i <<endl;
}
}
myfile.close();
return 0;
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- 当我读取一个大小为 17 mb 的 100 万个 url 文件时,我的程序占用大小为 163 MB
- 无法打开文件 libboost_thread_vc-100-mt-gd-1_48.lib
- 如何在 Windows 中将文件大小设置为 100 字节 C++.
- 查找质数 1-100 并将它们写入文件
- 我们如何将一个100gb的文件分割成100个1gb的文件?