我刚刚开始学习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 ();
}
答案 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>
(将为其添加链接)cout
,cin
和endl
位于std
命名空间中,因此请使用正确的命名空间或添加std::
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;”。