C++ 简单嵌套循环问题。*形状*
我现在脑震荡,所以我想问一个非常简单的问题 目前,我正试图打印出这样的开头 当输入为7时,输出为C++ 简单嵌套循环问题。*形状*,c++,nested-loops,shapes,C++,Nested Loops,Shapes,我现在脑震荡,所以我想问一个非常简单的问题 目前,我正试图打印出这样的开头 当输入为7时,输出为 * ** * ** * ** * 这里我的代码是,它打印14次,而不是7次,或者当我放入N/2时,它不会打印奇数 #include <iostream> using namespace std; int main () { int N; cout << " Please enter N " ; cin >> N;
*
**
*
**
*
**
*
这里我的代码是,它打印14次,而不是7次,或者当我放入N/2
时,它不会打印奇数
#include <iostream>
using namespace std;
int main () {
int N;
cout << " Please enter N " ;
cin >> N;
for (int i = 0; i < N ; i++) {
cout << "*" << endl;
for (int j = 0; j < 2; j++) {
cout << "*" ;
}
cout << endl;
}
}
#包括
使用名称空间std;
int main(){
int N;
cout>N;
对于(int i=0;i cout对于每个N
打印两行,其中一行为单行*
,另一行为两行*
。只需根据行的奇数或偶数打印一行或两行星号即可
#include <iostream>
int main ()
{
unsigned int N;
cout << " Please enter N " ;
cin >> N;
for(unsigned int i = 0; i < N; ++i)
{
if(i%2 == 0)
{
std::cout << "*" << std::endl;
}
else
{
std::cout << "**" << std::endl;
}
}
}
#包括
int main()
{
无符号整数N;
cout>N;
for(无符号整数i=0;i std::cout这是因为每次第一个for
循环运行时,第二个循环也会运行。您不能同时打印*
和**
,并期望它打印N
次(它将始终打印2*N
次)。您需要打印*
或***
,但不能同时打印两者。简单示例:
bool alternate = false;
for (int i = 0; i < N ; i++) {
if (alternate) {
cout << "*" << endl;
} else {
cout << "**" << endl;
}
alternate = !alternate;
}
bool alternate=false;
对于(int i=0;i cout对于外部循环的每个完整迭代,将打印以下内容:
*
**
如果运行该循环7次,将得到14行。请尝试此操作,无需使用内部循环:
for (int i = 0; i < N ; i++) {
cout << "*" << endl;
cout << "**" << endl;
}
for(inti=0;i 难道你就不能这样走吗
for (int i = 0; i < N ; i++) {
if (i%2 == 0)
{
cout << "**" << endl;
}
else
{
cout << "*" << endl;
}
}
for(int i=0;i 不能为偶数打印什么?但是当N为1时,它会打印2行,并且像我的代码一样打印14次。很好,我没有想到这一点。例如,当我的N为奇数时,我会检查(如果N%2!=0),然后在我的最后一个循环中返回false,对吗?我不完全确定“返回false”是什么意思,但如果你的意思是提前返回/提前跳出循环,那么不,不要返回false。只需循环完整的N
N%2!=0
可以告诉你是否需要打印*
或***
。它不是用来提前跳出循环的。是的,就是这个。我怎么能忘记呢,谢谢!@Yeliz不客气。如果你对任何答案感到满意,别忘了接受。是的,我知道了要点。我应该检查一下我的循环中是偶数还是奇数。非常感谢