C++ C++;嵌套For循环

C++ C++;嵌套For循环,c++,for-loop,visual-c++,nested-loops,C++,For Loop,Visual C++,Nested Loops,我认为这比原先计划的要容易。我正在尝试使用嵌套for循环生成此图像: 任何建议或解决方案都会有所帮助 #include <iostream> using namespace std; int main() { for(int i=0; i<1;i++) { cout<<i+1<<endl; for(int j=0;j<2;j++) { cout<&

我认为这比原先计划的要容易。我正在尝试使用嵌套for循环生成此图像:

任何建议或解决方案都会有所帮助

#include <iostream>

using namespace std;

int main()
{
    for(int i=0; i<1;i++)
    {
        cout<<i+1<<endl;

        for(int j=0;j<2;j++)
        {
            cout<<j+1;
        }
     }

    cout<<"\n";
    for(int k=0; k<3; k++)
    {
        cout<<k+1;
    }
    cout<<"\n";
    for(int l=0; l<4; l++)
    {
        cout<<l+1;
    }
    cout<<"\n";
    for(int m=4; m>0; m--)
    {
        cout<<m;
    }
    cout<<"\n";
    for(int n=3; n>0; n--)
    {
        cout<<n;
    }
    cout<<"\n";
    for(int o=2; o>0; o--)
    {
        cout<<o;
    }
    cout<<"\n";
    for(int p=0; p<1; p++)
    {
        cout<<p+1;
    }
    cin.get();

    return 0;
}
#包括
使用名称空间std;
int main()
{
对于(int i=0;i
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
/*前半部分:从级别1=1到小于5,级别2=1到小于或等于级别1,打印级别2*/
对于(int-level1=1;level1<5;level1++){

对于(int level2=1;level2这里有一个C语言的解决方案供您使用=)

#包括
#包括
内部主(空){
字符转发[5]=“1”;
字符反转[5]=“4321”;
int i;

对于(i=1;i如果您想要一个非常紧凑且不太容易遵循的解决方案,我决定试一试

int length = 4;

for(int i = 0; i < 2; i++) 
{
    for(int j = 0; j < length; j++) 
    {
        for(int k = 0; k < (i == 1 ? length - j : j + 1); k++) 
        {
            if(i == 1 && k == 0) 
                for(int x = 0; x < j; x++)
                    cout << " ";

            cout << (i == 1 ? (length - k) - j : k + 1);
        }

        cout << endl;
    }
}
int-length=4;
对于(int i=0;i<2;i++)
{
对于(int j=0;jcout好,因为paddy发布了他的C解决方案(有人说“compact”=p)


您创建的输出的图像在解决问题时非常有用。也不要使用
i
j
k
l
m
n
o
作为变量名。代码提示:您希望内部循环的边界成为o的循环索引uter LOOPE考虑将其分为两个问题:前四行,然后是后四行。在担心其余部分之前,尝试解决前四行。我不太擅长这种可视化循环…任何代码示例都会很受欢迎。我不完全了解,但结果是完美的。为什么命名变量为“过渡”并且可以你能解释一下逻辑吗?我不知道该怎么称呼这个变量,所以我把它叫做一些愚蠢的东西,比如
middial
,但你从代码中了解到,它只用于在输出中添加一个空格。我意识到循环逻辑有两个行级别,一直到4等等。
#include <stdio.h>
#include <string.h>

int main(void) {
    char forward[5] = "1";
    char reverse[5] = "4321";

    int i;
    for( i = 1; i <= 4; i++ ) {
        printf( "%s\n", forward );
        forward[i] = forward[i-1]+1;
    }
    for( i = 0; i < 4; i++ ) printf( "% 4s\n", reverse+i );
}
int length = 4;

for(int i = 0; i < 2; i++) 
{
    for(int j = 0; j < length; j++) 
    {
        for(int k = 0; k < (i == 1 ? length - j : j + 1); k++) 
        {
            if(i == 1 && k == 0) 
                for(int x = 0; x < j; x++)
                    cout << " ";

            cout << (i == 1 ? (length - k) - j : k + 1);
        }

        cout << endl;
    }
}
#include <stdio.h>
int main()
{
    char line[] = "1234321";
    int i=0;
    for (; i<4; printf("%.*s\n",++i,line));
    for (i=0;i<4; printf("%4s\n",line+3+i++));
    return 0;
}
1
12
123
1234
4321
 321
  21
   1