首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++嵌套的For循环

C++嵌套的For循环
EN

Stack Overflow用户
提问于 2013-02-15 12:27:35
回答 4查看 5.2K关注 0票数 0

我认为这会比最初计划的更容易。我试着让这个图像脱离嵌套的for循环:

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

代码语言:javascript
复制
#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;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-02-15 12:41:39

代码语言:javascript
复制
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
 /*first half: From level1 = 1 to less than 5, level2 = 1 to less than or equal to level1, print level2 */
 for(int level1 = 1; level1 < 5; level1++) { 
     for(int level2 = 1; level2 <= level1; level2++){
        cout << level2;
     }
     cout << '\n'; /*prints the newline AFTER each iteration of the `level2` loop*/
 }

 /*second half: reverse the logic of part1, but also add spaces in the beginning */
 for(int level1 = 4; level1 > 0; level1--){
     for(int interim = 4; interim > level1; interim--) cout << ' ';
     for(int level2 = level1; level2 > 0; level2--){
         cout << level2;
     }
     cout << '\n';
 }
 return 0;  
}

如果您不理解此代码,请告诉我:-)

票数 0
EN

Stack Overflow用户

发布于 2013-02-15 12:59:53

这里有一个C语言的解决方案给你=)

代码语言:javascript
复制
#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 );
}
票数 4
EN

Stack Overflow用户

发布于 2013-02-15 13:06:53

如果你想要一个非常紧凑但不太容易遵循的解决方案,我决定试一试。

代码语言:javascript
复制
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;
    }
}

其中length是从1length的迭代次数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14888238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档