c++关于循环,错误的输出



我刚开始学习C++,我想问为什么我的简单代码输出不正确。

我想要什么:

用户输入N->输出="N个mod 2=0但不是mod 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::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 ();
}

我还更改了一些其他细节。

需要考虑的不同事项:

  • 最好包括来自<iostream>的iso <iostream.h>(将添加原因链接)
  • coutcinendl位于std命名空间中,因此使用正确的命名空间或添加std::
  • main()的返回类型应该是int。如果没有返回语句,它将隐式为0。
    • operator<operator<<之间存在差异

代码:

    #include <iostream>
    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 << std::endl;
        return 0;
    }

不确定,我完全明白了这个问题,但最明显的罪魁祸首是行中的拼写错误:

cout<<i<"   ";

将"<"替换为流输出运算符,即"<<

相关内容

  • 没有找到相关文章

最新更新