打印陀螺形数字
来源:互联网 发布:北京梨园淘宝城 编辑:程序博客网 时间:2024/05/10 16:49
用户输入n,编写程序通过二维数组打印如下所示陀螺形数字(以n=6为例)
1 20 19 18 17 16
2 21 32 31 30 15
3 22 33 36 29 14
4 23 34 35 28 13
5 24 25 26 27 12
6 7 8 9 10 11
/* 打印陀螺形数字*/
/* 通过控制二维数组下标,将1~n*n存入二维数组,并输出之*/
/* 二维数组下标变化:最初 i 由0->n-1,j 由0->n-1;然后i 由n-1->0,j 由n-1->1。此时已得到陀螺的最外层*/
/* 设置第二层的起始s、终止t,将 i 由s->t,j 由s->t;然后i 由t->s,j 由t->s+1。此时已得到陀螺的第二层*/
/* 循环上述步骤 */
#include <stdio.h>
#include <conio.h>
#define N 100 /* creat an array large enough */
int n,i,j,a[N][N];
input() /* 函数功能:读取所输入的数据,如果n大于某特定值重新输入*/
{
puts("Please input n:");
scanf("%d",&n);
while (n>N)
{
puts("Please input a smaller number");
scanf("%d",&n);
}
}
output() /* 函数功能:输出二维数组,按任意键结束*/
{
printf("................top of %d.................../n/n",n);
for (i=0;i<n;i++ )
{
for (j=0;j<n ;j++ )
printf("%4d",a[i][j]);
printf("/n/n");
}
printf("............................................/n");
puts("press anykey to quit.");
getch();
}
int main(void)
{int s,t,k;
input();
s=0;t=n-1;i=j=0;
for (k=0;k<=n*n-1&&s<=t;k++)
{
a[i][j]=k+1;
if (i<t&&j==s) {i++;continue;}
if (i==t&&j<t) {j++;continue;}
if (i>s&&j==t) {i--;continue;}
if (i==s&&j>s+1) {j--;if(!(j==i+1)) continue;}
s++;t--;
}
clrscr();
output();
return(0);
}
- 打印陀螺形数字
- 打印Z形数
- 陀螺原则
- 磁悬浮陀螺
- 陀螺文化
- 回形数字矩阵(Java)
- 『每日一题 2012-02-09』打印回形数 C语言实现
- 疯狂的陀螺
- 旋转的陀螺
- 加速度计和陀螺指南
- 加速度计和陀螺指南
- 光纤陀螺简介
- 三角形数
- 守形数
- 三角形数
- 三角形数
- 平行四边形数
- 平行四边形数
- 一个通过某个部件获得父窗体的例子
- 个人简历
- 基于SMIL的多媒体课件制作工具的研究
- 利用配置文件实现SQL-Server与Oralce数据库访问类的转换
- SQL查询中的连接
- 打印陀螺形数字
- 编写一个可以自动执行的.jar文件
- MVC模式在Java Web中的应用
- Weblogic8配置SQL-Server2000数据库连接池(第四类API连接)
- 给程序设计也建个模
- Spring项目开发笔记系列(五)
- 如何配置netbeans中绑定的tomcat管理员用户名和密码
- java连接sql server 2000 数据库 详细说明
- java直接访问数据库文件