-3

刚开始学C++,想问一下为什么我的简单代码输出不对。

我想要的是:

用户输入 N -> 输出 =“模 2 = 0 但不是模 3 = 0 的 N 数”

我得到了什么:

用户输入 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 ();
}
4

3 回答 3

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

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

于 2016-04-06T14:43:17.543 回答
1

需要注意的不同事项:

  • 最好从<iostream>iso中包含<iostream.h>(将添加链接说明原因)
  • cout,cin并且endlstd命名空间中,所以要么使用正确的命名空间,要么添加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;
    }
于 2016-04-06T14:45:20.330 回答
0

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

cout<<i<"   ";

将“<”替换为流输出操作符,即“<<”。

于 2016-04-06T14:54:26.973 回答