c ++关于循环,错误输出
c++ about looping , wrong output
刚开始学C++,想问一下为什么我的简单代码输出不对。
我想要的:
user input N -> output = " N number that mod 2 =0 but not 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>
(为什么会添加link)
cout
、cin
和 endl
在 std
命名空间中,因此请使用正确的命名空间或添加 std::
- main() 的 return 类型应该是 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;
}
不确定,我完全理解了问题,但最明显的罪魁祸首是该行中的错字:
cout<<i<" ";
将“<”替换为流输出操作符,即“<<”。
刚开始学C++,想问一下为什么我的简单代码输出不对。
我想要的:
user input N -> output = " N number that mod 2 =0 but not 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>
(为什么会添加link) cout
、cin
和endl
在std
命名空间中,因此请使用正确的命名空间或添加std::
- main() 的 return 类型应该是 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;
}
不确定,我完全理解了问题,但最明显的罪魁祸首是该行中的错字:
cout<<i<" ";
将“<”替换为流输出操作符,即“<<”。