c++打印数字图案?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++打印数字图案?相关的知识,希望对你有一定的参考价值。

大于或等于3的奇数n由用户输入。 只需编写一个代码,打印一个与示例中相同模式的 n x n 数组。 例如) n = 5 这是一种从左上角开始,增加 1,到中间结束的模式。详细例子见图片

这是打印螺旋矩阵,一般的解决方法是这样的:

将矩阵生成到一个二维数组,然后打印出二维数组就行了。


代码如下:

#include<iostream>


using namespace std;


int main()

 int n;

 //x,y表示当前数组要赋值的位置

 int x = 0,y = -1;

 //每次赋值时,x和y的增量

 int x_add = 0, y_add = 1;

 //num:移动方向发生变化的转变点,num_add:每次转变时num的增量

 cin>>n;

int a[n][n];

 int num = n,num_add = n; 

 for(int i=1;i<=n*n;i++)

 

  x += x_add;

  y += y_add;

  a[x][y] = i;

  

        //移动方向发生转变

  if(i == num) 

 

            //横向变纵向

   if(y_add == 1 || y_add == -1) 

   

    x_add = y_add;

    y_add = 0;

    num_add--;

    num += num_add;

   

   else //纵向变横向

   

    y_add = -x_add;

    x_add = 0;

    num += num_add;

   

 

 

 for(int i=0;i<n;i++)

 

  for(int j=0;j<n-1;j++)

 

   cout<<a[i][j]<<" ";

 

  cout<<a[i][n-1]<<endl;

 

 return 0;


结果截图:

参考技术A :你好,就是用printf输出就行,注意要加空格,调整好形状 参考技术B #include using namespace std;void main()cout 参考技术C include usingnamespacestd; voidmain() inti,j; for(i=1;i using namespace std; int main() for(int i=1;i0;i--) for(int j=i;j>0;j--) cout<<"*"; co 参考技术D 数组型和整型是两个东西,不能相加。如果强行相加会引起未定义的行为。你要知道的是“不能这么做”,而不是“为什么会出现这样的错误结果”

python 利用 for 循环 打印数字图案

示例1:

技术图片

print( , end=‘‘)
for i in range(1, 10):
    print(str(i).rjust(3), end=‘‘)

print()
for i in range(1, 10):
    print(i, end=‘‘)
    for j in range(1, 10):
        if i != j:
            print( *3, end=‘‘)
        else:
            print(str(i*j).rjust(3), end=‘‘)
            
    print()

 

示例2:

技术图片

print( , end=‘‘)
for i in range(1, 10):
    print(str(i).rjust(3), end=‘‘)

print()
for i in range(1, 10):
    print(i, end=‘‘)
    for j in range(1, 10):
        if i + j == 10:
            print(str(i*j).rjust(3), end=‘‘)
        elif i != j:
            print( *3, end=‘‘)
        else:
            print(str(i*j).rjust(3), end=‘‘)
            
    print()

 

示例3:

技术图片

print( , end=‘‘)
for i in range(1, 10):
    print(str(i).rjust(3), end=‘‘)

print()
for i in range(1, 10):
    print(i, end=‘‘)
    for j in range(1, 10):
        if i + j == 10:
            print(str(i*j).rjust(3), end=‘‘)
        elif j == 9:
            print(str(i*j).rjust(3), end=‘‘)
        elif i != j:
            print( *3, end=‘‘)
        else:
            print(str(i*j).rjust(3), end=‘‘)
            
    print()

 

示例4:

技术图片

print( , end=‘‘)
for i in range(1, 10):
    print(str(i).rjust(3), end=‘‘)

print()
for i in range(1, 10):
    print(i, end=‘‘)
    for j in range(1, 10):
        if i == 9:
            print(str(i*j).rjust(3), end=‘‘)
        elif i + j == 10:
            print(str(i*j).rjust(3), end=‘‘)
        elif j == 9:
            print(str(i*j).rjust(3), end=‘‘)
        elif i != j:
            print( *3, end=‘‘)
        else:
            print(str(i*j).rjust(3), end=‘‘)
            
    print()

以上是关于c++打印数字图案?的主要内容,如果未能解决你的问题,请参考以下文章

我想打印数字图案程序,但它不会给我错误的输出结果

打印各种图案~

打印各种图案~

2.打印图案

怎样用JAVA打印出下面下列数字金字塔

Java50道经典习题-程序19 输入行数打印菱形图案