用于循环的C++没有以其他方式输出
C++ for loop no output in other way
我一直在为我的练习编写一些代码,现在我遇到了麻烦。我需要找到输入数的除数,并将它们输出到文件中
示例:
输入: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--){
您的循环有错误的条件:
for (int i = sk; i < 0; i--){
if (sk % i == 0) fr << sk/i << " ";
}
在条件i<0,它从不进入循环。应该是:
for (int i = sk; i >0 0; i--){
if (sk % i == 0) fr << sk/i << " ";
}
如果您需要从1到sk的输出,for循环必须如下所示:
#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 << i << " ";
fd.close ();
fr.close ();
}
这将输出1 2 3 5 6 10 15 30
相关文章:
- 我如何在一个 if 语句中声明所有数字我尝试通过其他方式声明所有数字,如果一个接一个,但似乎代码有逻辑错误
- 我如何使用“ op parallel”或其他方式并行循环
- 无法以正确的方式执行其他程序
- 类定义中定义的成员函数的编译方式是否与C++中其他位置定义的成员函数不同
- 实时在语言之间流水线传输或以其他方式传输数据
- 如何根据其ARITY(或编译时已知的其他信息)以不同的方式调用函数对象
- 如何通过Visual Studio COM包装(或其他方式)在C#中使用C++属性联合
- visual在源代码中是否有预定义的#define或其他方式来了解它是为C++/CX Windows运行时编译的
- C++ 如何通过可选的typedef,使用SFINAE或其他方式选择类
- 在C++中,函数在main()中更改变量的任何其他方式
- C++如何用模板指定或其他方式实现
- 用于循环的C++没有以其他方式输出
- 如何防止以 A 类以外的任何其他方式创建 B 类的对象
- 从Java调用WinMain:可能吗?任何其他方式
- 通过办公自动化或其他方式检查MS Office许可证状态
- 当使用spirit以其他方式解析结构时,会导致输出混乱
- VBOs或者其他方式
- 通过元编程或其他方式自动注册dll模块中的静态对象工厂
- 如何通过QSignalMapper或其他方式从QMenu传递QString到Qt插槽
- c++ /(MFC dummy)和纯Win MessageBox() -如何删除消息队列或以其他方式删除现有的鼠标点击/