[C]回环数(螺旋矩阵)
来源:互联网 发布:cdn分发网络架构搭建 编辑:程序博客网 时间:2024/05/21 14:48
1,根据输入数字,动态分配二维数组;
#include"stdafx.h"
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
int main()
{
int num=1;//记录数到几了,比如n=4,就是1-16
FILE *fp;
int i=0;//行号
int j=0;//列号
int r=0;//行列转换记录,0为行,1为列
int n=0;//输入的数字
int **a;//存放每一行的首地址
int l;
int k1;//临时标号
int k2;//临时标号
//输入
printf("please input your number:/n");
scanf("%d",&n);
if( n < 1 || n > 316)//对输入进行检验
{
printf("Sorry, the number should be between 1 and 316,please retry!!/n");
system("pause");
exit(0);
}
//动态生成二维数组
a = (int **)malloc(sizeof(int *) * n);//每一行的地址
for(k1 = 0; k1 < n; k1++)
{
a[k1] = (int *)malloc(sizeof(int) * n);//存放每一行的数字
}
l = n;
//写入数字
while(l > 1)
{
num = SingleCircle(a,num,i,j,l);
i++;
j++;
l = l-2;
}
if(n % 2 != 0)
a[i][j] = num;
//输出到文件
fp = fopen("d://result.txt","w+");//文件的地址
for(k1 = 0 ; k1 < n ; k1++)
{
for(k2 = 0; k2 < n; k2++)
{
if(a[k1][k2] < 10)
fprintf(fp,"%d ",a[k1][k2]);//每个数最多占五位,就是最大的n为316
else if(a[k1][k2] < 100)
fprintf(fp,"%d ",a[k1][k2]);
else if(a[k1][k2] < 1000)
fprintf(fp,"%d ",a[k1][k2]);
else if(a[k1][k2] < 10000)
fprintf(fp,"%d ",a[k1][k2]);
else if(a[k1][k2] < 100000)
fprintf(fp,"%d ",a[k1][k2]);
}
fprintf(fp,"/n");
}
fclose(fp);
printf("please see your result in: d://result.txt/n");
system("pause");
return 0;
}
int SingleCircle(int **a,int initnum,int initi,int initj,int length)//生成一圈数字
{
int count = 1;//中间的变量,是从1-(length-1)的
int t = 0;//标号,记录变数,0-3
int r = 0;//控制行标也就是i的变化
int c = 1;//控制列标也就是j的变化
int i = initi;//初始位置
int j = initj;//初始位置
int num = initnum;//初始的数字大小
while(t < 4)
{
for(count = 1 ;count < length; count++)
{
a[i][j] = num;
i += r;
j += c;
num++;
}
t++;
if(t == 0 || t == 1)//向前加
{
r = (++r % 2);
c = (++c % 2);
}
else //向回减
{
r = -(++r % 2);
c = -(++c % 2);
}
}
return num;
}
- [C]回环数(螺旋矩阵)
- java 输出回环数(螺旋矩阵)
- JAVA回环输入数字!螺旋矩阵
- 蛇形矩阵,回环矩阵,数字螺旋矩阵的PHP实现
- (1)回环矩阵
- c语言(螺旋矩阵)2017.4.23
- 向内的螺旋矩阵(C语言)
- [C++] 螺旋矩阵
- 螺旋矩阵(c实现)
- 螺旋方针(螺旋矩阵)
- 回环矩阵
- 螺旋矩阵的C实现
- 螺旋矩阵C语言实现
- C语言输出螺旋矩阵
- C语言生成螺旋矩阵
- 螺旋矩阵(c语言实现)
- 【C++】【PAT】1050螺旋矩阵
- 【模拟】[NOIP2014]螺旋矩阵[c++]
- 汇编实现strcmp
- 汇编实现strcmp
- HDU 1087 简单DP
- java中equals和==的区别
- c# BackgroungWorker 用法总结
- [C]回环数(螺旋矩阵)
- 今年过节不收礼!!
- ural 1036 Lucky Tickets
- 小探讨getchar和回车
- 你还在用if else吗?(转)
- Android Activity和Intent机制学习笔记
- Linux环境下后台海量数据拉取入库基本流程
- linux如何使用文本浏览器lynx并显示中文
- 数据结构---队列