请用C语言实现 输入N,打印N*N矩阵
比如 N = 3, 打印:
1 2 3
8 9 4
7 6 5
N = 4, 打印
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
启动2012
输出结果
#include <stdio.h>
#include <stdlib.h>
#define M 5
int arr[M][M] = { 0 }; //初始化数组全0 ,用0来判断数组是否赋有正确的值
void HuiJu(void); //矩阵赋值函数
void ShowArr(void); //输出矩阵
int main()
{
HuiJu();
ShowArr();
system("pause");
return 0;
}
void ShowArr(void)
{
int i = 0;
int j = 0;
for (i = 0; i < M; i++)
{
for (j = 0; j < M; j++)
{
printf("%d\t", arr[i][j]);
}
printf("\n");
}
}
void HuiJu(void)
{
int i = 0; //数组索引
int j = 0; //数组索引
int direc = 1; //方向控制
int num = 1; //给数组进行赋值的变量
while (num <= M*M)//对矩阵循环赋值
{
switch (direc)
{
case 1: //从左到右
while (arr[i][j] == 0 && j < M) //数组值为0以及索引j没有越界时进行
{
arr[i][j] = num;
num++;
j++; //i不变 j递增
}
j--; //改变索引为下一个变量的索引
i++; //改变索引为下一个变量的索引
direc = 2;//把方向从左到右改变为从上到下
break;
case 2: //从上到下
while (arr[i][j] == 0 && i < M)//数组值为0以及索引i没有越界时进行
{
arr[i][j] = num;
num++;
i++; //j不变 i递增
}
i--; //改变索引为下一个变量的索引
j--; //改变索引为下一个变量的索引
direc = 3;//把方向从上到下改变为从右到左
break;
case 3: //从右到左
while (arr[i][j] == 0 && j >= 0)//数组值为0以及索引j没有越界时进行
{
arr[i][j] = num;
num++;
j--; //i不变 j递减
}
j++; //改变索引为下一个变量的索引
i--; //改变索引为下一个变量的索引
direc = 4;//把方向从右到左改变为从上到上
break;
case 4: //从下到上
while (arr[i][j] == 0) //从下到上只需要判断是否被正确赋值
{
arr[i][j] = num;
i--; //j不变 i递减
num++;
}
i++; //改变索引为下一个变量的索引
j++; //改变索引为下一个变量的索引
direc = 1; //把方向从下到上改变为从左到右
break;
}
}
}
源代码下载地址如下:
http://download.csdn.net/detail/yincheng01/6369295
分享到:
相关推荐
Microsoft Visual C++ 2012 Redistributable Package运行库,可以在不安装Microsoft Visual C++ 2012的情况下运行需要Microsoft Visual C++ 2012支持的软件、游戏补丁等程序。 同时对于运行程序时,缺少msvcr110....
主要内容:Metro新特性、Visual Studio 2012九大新功能,Visual C++ 2012语言新特性,Visual C++ 2012的异步编程与网络编程,实现并行编程充分利用多核处理能力,基于Visual C++充分使用GPU的计算能力,使用Lambda、...
Microsoft Visual C++ 2012 Redistributable,Visual C++ Redistributable Package 安装 Visual C++ 库的运行时组件,这些组件是在未安装 Visual Studio 2012 的计算机上运行使用 Visual Studio 2012 开发的应用程序...
Visual C++2012入门经典Visual C++2012入门经典Visual C++2012入门经典Visual C++2012入门经典Visual C++2012入门经典Visual C++2012入门经典Visual C++2012入门经典Visual C++2012入门经典Visual C++2012入门经典...
Visual C++ 2012入门经典(第6版)[中文] 共101336KB(101M),分2个压缩包上传.第一个包要分,第二个包免费。必须同时下了才能解包哦,无密码。
Visual C++ Redistributable for Visual Studio 2012 安装说明:下载 .exe 文件: 在此页上,选择“下载”按钮。 若要立即安装此软件,请选择“运行”按钮。 若要稍后安装此软件,请选择“保存”按钮。
Visual C++ 2012入门经典(第6版)[中文] 共101336KB(101M),分2个压缩包上传.第一个包要分,第二个包免费。必须同时下了才能解包哦,无密码。
Visual C++ 2012入门经典(第6版)中文高清扫描完整版 ============================================================ 原书名:Ivor Horton's Beginning Visual C++ 2012 原出版社:Wrox 作者:(美)霍尔顿(Horton, I....
物流管理系统毕业设计——基于Visual-C++-6.0和SQL-Server-2000编写.pdf物流管理系统毕业设计——基于Visual-C++-6.0和SQL-Server-2000编写.pdf物流管理系统毕业设计——基于Visual-C++-6.0和SQL-Server-2000编写....
Microsoft Visual C++ 2012 Redistributable Packege(x64)
欢迎使用本书。 通过学习本书, 您可以使用Microsoft公司...Visual C++ 2012是Microsoft开发环境Visual Studio 2012的所有版本的一部分, 本书提到Visual C++时,都是指Visual Studio 2012包含的Visual C++ 2012功能。
Visual C++ 2012入门经典 第6版 Visual C++ 2012入门经典 Visual C++ 2012
VC2012运行库x86位版本Visual C++ 2012 Redistributable Package 安装 Visual C++ 库的运行时组件,这些组件是在未安装 Visual Studio 2012 的计算机上运行使用 Visual Studio 2012 开发的应用程序所必需的。...
精通Windows Sockets网络开发:基于Visual C++实现
本书是超级畅销书《C语言入门经典(第4版)》作者、编程导师霍尔顿(Ivor Horton)最新作品,国内首本Visual C++ 2012 著作,入门必备最佳指南,引领无数程序员进入编程殿堂!Ivor Horton的书能够占据市场的一个原因...
《Visual C++ 2012入门经典(第6版)》一书的配书源代码。
精通Windows+Sockets网络开发:基于Visual+C++实现,资料全,欢迎使用
Visual C++ 2012 Redistributable Packages vc2012 运行库
Microsoft Visual C++ 2012运行库 X64 .exe
Visual C++ 2012入门经典(第6版)完整中文版,高清晰