如何打印以下图案的矩形

时间:2015-09-15 12:10:15

标签: c

我需要在C中打印以下模式。我已经尝试了很多,但我无法确定模式

1 1 1 1 2
3 2 2 2 2
3 3 3 3 4
5 4 4 4 4
5 5 5 5 6

5 个答案:

答案 0 :(得分:0)

试试这个:

#include <stdio.h>

int main()
{
int i,j;
int n = 9;
for(i=1;i<=n;i++)
{
    for(j=1;j<=5;j++)
    {

        if(i%2==0)
        {
            if(j==1)
            {
                printf(" %d",i+1);
            }
            else
                printf(" %d",i);
        }
        else
        {
            if(j==5)
            {
                printf(" %d",i+1);
                break;
            }
            else
            {
                printf(" %d",i);
            }
        }
    }
    printf("\n");
}
return 0;
}

输出:

 1 1 1 1 2
 3 2 2 2 2
 3 3 3 3 4
 5 4 4 4 4
 5 5 5 5 6
 7 6 6 6 6
 7 7 7 7 8
 9 8 8 8 8
 9 9 9 9 10

答案 1 :(得分:0)

简单的循环可以是 -

MutableInteger

演示 - https://ideone.com/KSDBjG

答案 2 :(得分:0)

简单的解决方案。

#define MAX_ROW 5
#define MAX_COL 5

int main ()
{
    int row,col;
    int matrix[MAX_ROW][MAX_COL];

    for (row=0; row<MAX_ROW; row++)
    {
        for (col=0; col<MAX_COL; col++)
        {
            if (col== MAX_COL-1)
            {
                if(row%2)
                    matrix[row][col] = row+1;
                else
                    matrix[row][col] = row+2;
            }
            else if (col == 0)
            {
                if (row%2)
                    matrix[row][col] = row+2;
                else
                    matrix[row][col] = row+1;
            }
            else
            {
                matrix[row][col] = row+1;
            }
        }
    }

    for (row=0; row<MAX_ROW; row++)
    {
        for (col=0; col<MAX_COL; col++)
        {
            printf("%d ", matrix[row][col]);
        }
        printf("\n");
    }
    return 0;
}

答案 3 :(得分:0)

我希望这对你有用。

#include<stdio.h>

int main()
{
int i,j;
for(i=1;i<=5;i++)
{
    int special=i+1;
    if(i%2==1)
    {
        for(j=1;j<=4;j++)
        {
            printf("%d ",i);
        }
        printf("%d\n",special);
    }
    else if(i%2==0)
    {
        printf("%d ",special);
        for(j=1;j<=4;j++)
        {
            printf("%d ",i);
        }
        printf("\n");
    }
}
}

此代码的第五个输出是:

1 1 1 1 2
3 2 2 2 2 
3 3 3 3 4
5 4 4 4 4 
5 5 5 5 6

答案 4 :(得分:-2)

我认为你正在寻找更通用的东西:

#include <iostream>

using namespace std;

int main()
{
    int dimension = 5;

    for( int i = 1 ; i <= dimension ; i++ )
    {
        for( int j = 1 ; j <= dimension ; j++ )
            std::cout << i + (j == 1+((dimension-1)*(i%2))) ?  (i%2)*1 : 0;

        std::cout << "\n";
    }

    return 0;
}

尺寸= 5的输出:

11112
32222
33334
54444
55556

尺寸= 7的输出:

1111112
3222222
3333334
5444444
5555556
7666666
7777778

您可以在线查看here

祝你好运!