大于或等于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;
}
结果截图:
c++打印数字图案?
这是打印螺旋矩阵,一般的解决方法是这样的:将矩阵生成到一个二维数组,然后打印出二维数组就行了。代码如下: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...
用C\/C++语言打印数字三角形
思路就是一行一行地打印,然后数清楚每一行要输出几个空格,还有数字。假设n是输入,也代表总行数;假设row是行号,取值为[1, n]总结三角形每一行的规律---对于每一行,输出分三大步:输出n - row个空格 输出 1 ~ row 输出 row-1 ~ 1 所以代码如下:include <iostream> using namespace std;in...
用C++编程序打印一个数字金字塔
void main(){ const int ta=9;int i,j,k;for(i=1;i<=ta;i++){ for(k=1;k<=ta-i;k++)printf(" ");for(j=1;j<=i;j++)printf("%d",j);for(j=i-1;j>0;j--)printf("%d",j);printf("\\n");} }
用c++或c打印数字三角形,从1开始输出,第i行输出i个数,每个数字按4个位 ...
include <stdio.h>main(){int i,j,n,t=1;printf("请输入n:");scanf("%d",&n);for(i=1;i<=n;i++){for(j=0;j
c++中,这个程序为什么会输出如下结果。。那些9,8之类的数字从哪来的...
因为你用的是单引号,在输出时被cout解释成数字了,所以打印出来的是一串数字,不是你要的符号,把单引号换成双引号,以字符串形式输出。以上是推测的,手上没有电脑,你自己测试一下
用C++编程:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其...
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。三位的水仙花数共有4个:153,370,371,407;加一下就可以了,153+370+371+407=1301 你可以用程序来找到他们,比如用我会的pascal语言就是:program shuixianhuashu;var a,b,c:integer;begin for a:=1 ...
编写c++程序,输入n个数字,输出图形: 1 22 333 4444 55555……… nnnnn...
2个循环 解决 include <iostream> using namespace std;int main(){ int num;cout<<"请输入要循环的个数:";cin>>num;for(int i=1;i<=num;i++){ for (int j=0;j<i;j++){ cout<<i;} cout<<" ";} cout<<endl;system("pause");return 0;} ...
c++如何打出数字倒三角,在线等,急!
int main(){int h = 9;int s = 0;printf("%s ", "输入总行数:");scanf( "%d" , &h );printf("%s ", "输入起始数:");scanf( "%d" , &s );printf("\\n");for ( int i = h ; i >= 0 ; i-- ) {int l = s;for ( int j = i ; j > 0 ; j--...
用C++按顺序打印各位数字,如输入123,输出1,2,3
using namespace std;void main(){ int num,a[N],len;\/\/定义整数 char ch[N];\/\/字符数组,把整数转成字符串求整数长度 cin>>num;\/\/输入整数 itoa(num,ch,10);\/\/整数转换成字符串 len=strlen(ch);\/\/求出整数的长度 for (int i=len-1;i>=0;i--)\/\/依次求出整数各位上数,赋值给...
那个大的数字的方块应该怎么用C++代码打出来,求大神帮一下忙。谢谢...
方法一:第1步:单独插入钩√:word里点插入---特殊符号,---插入“√”;第2步:选中刚才插入的钩√;第3步:点格式---中文版式---,带圈字符---; 然后在圈号处点框框□,同时文字处点钩√---点确定,这样打钩的图标就出现了。当我们在样式上选择无、缩小文字、增大圈号时,出来的效果依次为...