C++ for循环没有其他方式的输出

标签 c++ for-loop

我一直在为我的练习编写一些代码,但现在我遇到了麻烦。 我需要找到输入数字的除数并将它们输出到文件中。
示例:
输入: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/

相关文章:

c - 如何阅读嵌套的for循环?

for-loop - 由于我的 if 语句,我的 for 循环停止处理

javascript - 如何将值发送到 Javascript 表单元素。不断发送一个值

python - 使用距离 = 速度 * 时间的循环表

C++ 使用 GET 发送数据

c++ - 堆分离解决内存碎片

c++ - C++ volatile 关键字是否引入了内存栅栏?

arrays - 数组的 LinkedList ..所有元素都获取最后一个元素的值

c++ - 继承时预期结果不起作用?

c++ - 为什么自动不检测函数的引用类型