C_使用二维数组作出矩阵图
来源:互联网 发布:会员数据分析报告 编辑:程序博客网 时间:2024/06/10 02:31
源码:
# include <stdio.h>
int main()
{
int array[16][16];
int i, j, k, m, n;
/* 变量初始化 */
m = 1;
while(m == 1)
{
printf("请输入n(0<n<=15且为奇数):");
scanf("%d", &n);
/* 判断n是否是大于0小于等于15的奇数 */
if((n!=0) && (n<=15) && (n%2!=0))
{
printf("矩阵阶数是 %d/n", n);
m = 0; // 制造循环输入机制,直到输入正确方可退出循环
}
}
/* 数组赋初值为0 */
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
array[i][j] = 0;
/* 建立魔方阵 */
j = n/2 + 1;
array[1][j] = 1; // 将首行正中间元素设置为1
/* 此时i与j都等于n */
for(k=2; k<=n*n; k++)
{
i = i - 1; // 回到上一行
j = j + 1; // 去往下一列
if((i<1) && (j>n)) // 若是行到达首行且列到达尾列,前进两行,退一列
{
i = i + 2;
j = j - 1;
}
else // 否则,若仅到首行时,变成尾行;若仅到尾列,变成首列
{
if(i < 1)
i = n;
if(j > n)
j = 1;
}
if(array[i][j] == 0) // 若二维数组中有元素为0,则令其等于k
array[i][j] = k;
else // 否则一旦出现非零元素,就等前进两行,退一列之后,令其等于k
{
i = i + 2;
j = j - 1;
array[i][j] = k;
}
}
/* 输出魔方阵 */
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
printf("%5d", array[i][j]);
printf("/n");
}
return 0;
}
- C_使用二维数组作出矩阵图
- c_二维数组,字符串数组,多维数组
- c_二维数组,字符串数组,多维数组
- 【java】使用二维数组输出矩阵
- C_二维数组, 字符串数组, 及多维数组
- 矩阵类,二维数组
- 矩阵、二维数组
- 二维数组 矩阵相乘
- C_定义字符型二维数组实现简单的编辑器
- c_数组
- C_向函数传递数组实现矩阵转置
- 二维数组解决矩阵相加...
- 动态二维数组,螺旋矩阵
- 蛇形矩阵填写二维数组
- 矩阵旋转-二维数组指针
- 二维数组动态分配&螺旋矩阵
- 二维数组---矩阵转置
- 二维数组---矩阵转置
- C_使用一维数组实现选择排序法
- 有关基于TCP的拥塞控制技术探究
- Delphi图像处理 -- 设置图像关键颜色
- Win32 SEH异常深度探索_8 异常处理是如何开始的
- 小议分布式网络系统中的数据访问设计和优化
- C_使用二维数组作出矩阵图
- C_定义字符型二维数组实现简单的编辑器
- Win32 SEH异常深度探索_9 总结
- 2.1.2主机解析
- 浅析基于耦合度的分布新问题探究
- C_各种数组的初始化实例
- 小议基于PHP的Web数据库访问
- C_综合使用数组实现简单的学生成绩管理系统
- 论基于Web的交互式数据库查询技术