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

时间:2016-04-06 14:32:55

标签: c++ loops mod

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

我想要的是什么:

用户输入N - > output =“N number,mod 2 = 0但不是mod 3 = 0”

我得到了什么:

用户输入N - > output =“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 ();
}

3 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望用户输入满足您条件的数字量。为此你应该有一个柜台:

#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 ();
}

我也改变了其他一些细节。

答案 1 :(得分:1)

要记住不同的事情:

  • 最好包含<iostream> iso <iostream.h>(将为其添加链接)
  • coutcinendl位于std命名空间中,因此请使用正确的命名空间或添加std::
  • main()的返回类型应为int。如果没有return语句,则隐式为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;
    }

答案 2 :(得分:0)

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

cout<<i<"   ";

替换“&lt;”使用流输出运算符,即“&lt;&lt;”。