关于循环,错误输出的C++ 我刚刚开始学习C++,我想问一下为什么我的简单代码输出不正确。p>
我想要的是: 用户输入N->输出=N模块2=0但不是模块3=0的编号 我得到的是: 用户输入N->输出=mod 2而非mod3=0的编号,范围为N 这是我的密码:关于循环,错误输出的C++ 我刚刚开始学习C++,我想问一下为什么我的简单代码输出不正确。p>,c++,loops,mod,C++,Loops,Mod,我想要的是: 用户输入N->输出=N模块2=0但不是模块3=0的编号 我得到的是: 用户输入N->输出=mod 2而非mod3=0的编号,范围为N 这是我的密码: #include <iostream> #include <conio.h> int main() { int i,n; std::cout << "input n" << std::endl; std::cin >> n; std::co
#include <iostream>
#include <conio.h>
int main()
{
int i,n;
std::cout << "input n" << std::endl;
std::cin >> n;
std::cout << "N Number that mod2=0 but mod3!=0" << std::endl;
for ( i = 1; i <= n; ++i )
{
if ( i % 2 == 0 && i % 3 != 0 )
{
std::cout << i < " ";
}
}
getch ();
}
如果我理解正确,您希望用户输入满足您条件的数字量。为此,您应该有一个计数器:
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
int main()
{
int n;
cout << "input n" << endl;
cin >> n;
cout << n << " numbers for that holds that mod2 = 0 but mod3 != 0" << endl;
int counter = 0;
for (int i = 1; counter < n; ++i)
{
if (i % 2 == 0 && i % 3 != 0)
{
cout << i << " ";
++counter;
}
}
getch ();
}
我还更改了一些其他细节。需要考虑的不同事项: 最好包括来自iso将添加链接的原因 cout、cin和endl位于std名称空间中,因此请使用正确的名称空间或添加std:: main的返回类型应为int。如果没有return语句,则隐式为0。
操作员之间存在差异不确定,我完全理解了问题,但最明显的罪魁祸首是行中的拼写错误:
cout<<i<" ";
是否只对数字n进行检查?我没有正确理解您的问题。您的程序无法生成所需的输出。它也不能生成观察到的输出。这仅仅是因为您发布的源中的字符串与它们中的任何一个都不同。请仔细检查您正在运行的程序是否确实是从您发布的源代码编译的程序。然后试着用更好的方式表达你的问题;现在还不清楚你想要什么。所以你想显示1->N之间的所有数字,即i%2=0而不是i%3=0?我编辑了你的问题。注意我对代码所做的更改;那里有大量的良好实践。它还使某个代码错误变得更加明显,我把它放在那里了。你能认出它吗?它在if体内。我认为这是一个复制粘贴错误,因为你的编译器应该抛出一个合适的错误。@Vasanth no。。例如,、input:5,Output:2,4,8,10,14 not input:5,Output:2,4.main不需要返回int,只有返回类型必须是intC++标准,第3.6.1章第5段:main中的return语句的作用是让main函数销毁具有自动存储持续时间的任何对象,并使用返回值作为参数调用exit。如果控件到达main末尾时没有遇到return语句,则效果是执行return 0;因此它将隐式返回一个int;。确切地您的第三个项目符号加上返回0;但对我来说,返回0;是一个必要的陈述,但事实并非如此。我只是想用我的评论来澄清这一点好吧,我同意这可能令人困惑。我将编辑答案。天哪,非常感谢。
cout<<i<" ";