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++打印数字图案?的主要内容,如果未能解决你的问题,请参考以下文章