#include<stdio.h>
void print(int n);
void main()
{
int n;
printf("please input n(n<=20):\n");
scanf("%d",&n);
print(n);
}
void print(int n)
{
int i=0;//x坐标
int j=0;//y坐标
int count=1;//打印的数从1开始
int m=0;//控制方向,等于0是横向,等于1是对角线,等于2是纵向
int step=1;//x,y坐标的步长
int helix[20][20]={0};//要打印的螺旋矩阵
int max;//计算要打印的数中最大的数
if(n%2==0){
max=n*n/2+n/2;
}else
max=n*n/2+n/2+1;
while(count<=max){
helix[i][j]=count++;
if(m==0){//先往右横走
j+=step;
if(j>=n||helix[i][j]!=0){//碰边,换方向
m=1;
j-=step;
j-=step;
i+=step;
}
}else if(m==1){//走对角线
j-=step;
i+=step;
if(j<0||helix[i][j]!=0){
m=2;
i-=step;
j+=step;
i-=step;
}
}else{//向上纵向走
i-=step;
if(helix[i][j]!=0){//碰边,换方向
m=0;
i+=step;
j+=step;
}
}
}
///显示上三角
for(i=0;i<n;i++){
for(j=0;j<n;j++)
if(helix[i][j]!=0)
printf("%-4d",helix[i][j]);
printf("\n");
}
}
当时考试的时候看到这题,感觉好熟悉,因为之前做过螺旋矩阵的题目,但是一时忘了思路。
后来做了两遍,还好做出来了。。。可能是今天状态不太好吧。。。
另参考:打印螺旋矩阵:
http://touch-2011.iteye.com/blog/1038881
原题:
- 大小: 24 KB
- 大小: 126.8 KB
分享到:
相关推荐
本文将深入探讨如何用C语言实现不同类型的螺旋矩阵生成。 首先,螺旋矩阵的生成依赖于对二维数组的控制,特别是对数组边界的有效管理。对于**左上角顺时针螺旋矩阵**的生成,我们可以采用双层循环嵌套的方法,外层...
打印输出螺旋矩阵,要求螺旋矩阵的阶数由用户输入
螺旋数组2.txt 试题.txt 诺汉塔画图版.txt 读写文本文件.txt 货郎担分枝限界图形演示.txt 货郎担限界算法.txt 质因子.txt 输出自已.txt 迷宫.txt 迷宫问题.txt 逆波兰计算器.txt 逆矩阵.txt 逆阵.txt ...
螺旋数组2.txt 试题.txt 诺汉塔画图版.txt 读写文本文件.txt 货郎担分枝限界图形演示.txt 货郎担限界算法.txt 质因子.txt 输出自已.txt 迷宫.txt 迷宫问题.txt 逆波兰计算器.txt 逆矩阵.txt 逆阵.txt ...
c语言窗体实例.zip 傻瓜递归.c 冒泡法改进.c 小字库DIY-.c 小字库DIY.c 小白鼠钻迷宫.c 扫描码.C 挽救软盘.c 汉字字模.c 神经元模型.c 穷举搜索法.c 简单数据库.c 编程汉字问题.txt 编随机数.c 试题.C 递堆法.C ./...
本次大作业涵盖了三个操作题,分别涉及温度转换、螺旋矩阵输出和三角函数图像绘制。下面将详细解释这三个知识点。 首先,摄氏温度C与华氏温度F之间的转换是基本的物理知识。转换公式为C = (F - 32) * 5/9,其中C...
在C语言中,这些代码示例展示了如何利用循环和条件语句来创建各种图形,包括空心菱形、空心等腰三角形以及顺时针螺旋方阵。这些题目是帮助初学者理解基本的控制流和数组操作的有效方法。下面分别详细解释每个示例: ...
【4.19】螺旋方阵输出:使用循环实现螺旋方阵输出,每行星号的个数逐渐增加。 【4.20】螺旋方阵输出:与螺旋方阵输出类似,但是每行星号的个数逐渐减少。 【4.21】回型方阵输出:使用循环实现回型方阵输出,每行星...
4. **其他数据结构和算法**:"杨辉三角"和"金字塔杨辉三角"是典型的递归问题,可以用数组或链表实现,涉及到组合数学和二项式系数。"螺旋数组"是数组的一种特殊排列,可以通过多维数组和循环实现。"魔方数组"可能是...
- 然后逆对角线翻转上三角区域。 - **输出**: 最后通过两层嵌套循环打印出矩阵。 ##### 4. 函数 `n3(int n)` 此函数用于生成其他偶数阶的特殊矩阵。以 `n=6` 为例,生成的矩阵如下所示: ``` 1 2 3 4 5 6 17 ...
- **螺旋方阵**:按螺旋顺序填充方阵中的数字。 #### 18. 字符处理 - **大小写字母转换**:利用ASCII码表,将字母从小写转换为大写或相反。 - **统计指定字符个数**:在字符串中统计特定字符出现的次数。 - **译...
《C语言经典算法》一书深入探讨了C语言在算法设计与实现中的应用,通过一系列具体实例,展示了C语言的强大功能及其在解决复杂问题时的灵活性。以下是对书中部分章节和知识点的详细解读: ### 第一章:数值处理 ###...
第四部分 图形篇 120 绘制直线 121 绘制圆 122 绘制圆弧 123 绘制椭圆 124 设置背景色和前景色 125 设置线条类型 126 设置填充类型和填充颜色 ...152 利用图形页实现动画 153 图形时钟 154 音乐动画
本资源提供了一个关于C语言的多小程序,涉及到画图、计算器、日期计算、天数计算、矩形、平行四边形、三角形、梯形、圆形、sin(x) 函数、余弦曲线、螺旋方阵、数字金字塔、回型方阵、乘法九九表、计算三角型面积、...
书中还专门讨论了数组的各种操作,包括数组转换、螺旋数组生成、杨辉三角形的编程实现等。 在编程竞赛和实际应用方面,书中提供了大量的编程题目和经典的C语言程序,如绘制图形、算法优化、数据处理等。这些内容...
C语言实例解析精粹(第二版) 光盘代码 本文件包括以下内容: ※ 1、文件说明 ※ 2、源码操作说明 ※ 3、光盘目录清单 ◎ 源码操作说明 源代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以...
C语言程序源代码(大集合).rar 实际只有139个,其余部分丢失! 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自...