我一直在为我的练习编写一些代码,但现在我遇到了麻烦。
我需要找到输入数字的除数并将它们输出到文件中。
示例:
输入:30
输出:1 2 3 5 6 10 15 30
这工作得很好,但答案是这样的:30 15 10 6 5 3 2 1(从另一边,但我需要从 1 到 ...)
#include <fstream>
using namespace std;
int main()
{
int sk; // number
ifstream fd ("input.txt");
ofstream fr ("output.txt");
fd >> sk;
for (int i = 1; i < sk++; i++){
if (sk % i == 0) fr << sk/i << " ";
}
fd.close ();
fr.close ();
}
我已经试过了,但是没有用,有什么问题吗?
#include <fstream>
using namespace std;
int main()
{
int sk; // number
ifstream fd ("input.txt");
ofstream fr ("output.txt");
fd >> sk;
for (int i = sk; i < 0; i--){
if (sk % i == 0) fr << sk/i << " ";
}
fd.close ();
fr.close ();
}
最佳答案
不输出sk/i
,只输出i
。
你的 i 按升序递增。但是你正在输出它的对应因子 1st。因此它以降序输出。
此外,在第二个循环中,将终止条件更改为 i >= 1:
for (int i = sk; i >= 1; i--){
关于C++ for循环没有其他方式的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20271957/