Mohican_3/18C语言 二维数组转置 杨辉三角 魔方阵初级版本
2018-03-21 23:00
302 查看
#include<stdio.h>
#include<string.h>
//1.二维数组转置
void Change1(int (*brr)[3],int (*crr)[2],int row,int col)
{
for(int i = 0;i < row;i++)//遍历 --->brr
{
for(int j = 0;j < col;j++)
{
crr[j][i] = brr[i][j];
}
}
}
void Show1(int *crr,int row,int col)//row和col crr
{
for(int i = 0;i < row;i++)
{
for(int j = 0;j < col;j++)
{
printf("%d ",crr[i*col+j]);
}
printf("\n");
}
}
//2杨辉三角
void YhTriangle1(int (*drr)[10],int row,int col)
{
/*
i:代表行:i == j 1
j == 0
drr[i][j] = drr[i-1][j-1]+drr[i-1][j]
遍历drr
*/
for(int i = 0;i < row;i++)
{
for(int j = 0;j < col;j++)
{
if(i == j || j == 0)
{
drr[i][j] = 1;
}
else
{
drr[i][j] = drr[i-1][j-1]+drr[i-1][j];
}
}
}
}
void Show2(int *crr,int row,int col)//row和col crr
{
for(int i = 0;i < row;i++)
{
for(int j = 0;j <= i;j++)
{
printf("%d ",crr[i*col+j]);
}
printf("\n");
}
}
void MFZ(int n )
{
if(n%2==0)
printf("error no mofangzhen \n");
int row,col;//p --- 行 row q---列 col
int tr,tc;
int v;
int a[20][20]={0};
a[0][n/2]=1; //将1放在第一行中间一列;
for(row=0,col=n/2,v=2;v<=n*n;v++)
{
tr=row;
tc=col;
row= row-1; //行减1
col=col+1;//列加一
if(row<0) row= row+n;
if(col>=n) col=col-n;
if(a[row][col]==0)
a[row][col]=v;
else {
row=tr;
col=tc;
row=row+1;
if(row>=n)row=row-n;
a[row][col]=v;
}
}
for(row=0;row<n;row++)
{
for(col=0;col<n;col++)
printf("%5d",a[row][col]);
printf("\n");
}
}
int main()
{
int brr[2][3] = {1,1,0,1,2,9};
int crr[3][2];
Change1(brr,crr,2,3);
Show1((int *)crr,3,2);
int drr[10][10];
YhTriangle1(drr,10,10);
Show2((int *)drr,10,10);
MFZ(5);
getchar();
return 0;
}
#include<string.h>
//1.二维数组转置
void Change1(int (*brr)[3],int (*crr)[2],int row,int col)
{
for(int i = 0;i < row;i++)//遍历 --->brr
{
for(int j = 0;j < col;j++)
{
crr[j][i] = brr[i][j];
}
}
}
void Show1(int *crr,int row,int col)//row和col crr
{
for(int i = 0;i < row;i++)
{
for(int j = 0;j < col;j++)
{
printf("%d ",crr[i*col+j]);
}
printf("\n");
}
}
//2杨辉三角
void YhTriangle1(int (*drr)[10],int row,int col)
{
/*
i:代表行:i == j 1
j == 0
drr[i][j] = drr[i-1][j-1]+drr[i-1][j]
遍历drr
*/
for(int i = 0;i < row;i++)
{
for(int j = 0;j < col;j++)
{
if(i == j || j == 0)
{
drr[i][j] = 1;
}
else
{
drr[i][j] = drr[i-1][j-1]+drr[i-1][j];
}
}
}
}
void Show2(int *crr,int row,int col)//row和col crr
{
for(int i = 0;i < row;i++)
{
for(int j = 0;j <= i;j++)
{
printf("%d ",crr[i*col+j]);
}
printf("\n");
}
}
void MFZ(int n )
{
if(n%2==0)
printf("error no mofangzhen \n");
int row,col;//p --- 行 row q---列 col
int tr,tc;
int v;
int a[20][20]={0};
a[0][n/2]=1; //将1放在第一行中间一列;
for(row=0,col=n/2,v=2;v<=n*n;v++)
{
tr=row;
tc=col;
row= row-1; //行减1
col=col+1;//列加一
if(row<0) row= row+n;
if(col>=n) col=col-n;
if(a[row][col]==0)
a[row][col]=v;
else {
row=tr;
col=tc;
row=row+1;
if(row>=n)row=row-n;
a[row][col]=v;
}
}
for(row=0;row<n;row++)
{
for(col=0;col<n;col++)
printf("%5d",a[row][col]);
printf("\n");
}
}
int main()
{
int brr[2][3] = {1,1,0,1,2,9};
int crr[3][2];
Change1(brr,crr,2,3);
Show1((int *)crr,3,2);
int drr[10][10];
YhTriangle1(drr,10,10);
Show2((int *)drr,10,10);
MFZ(5);
getchar();
return 0;
}
相关文章推荐
- 多语言版本网站开发技术方案
- as3——检测系统语言,检测播放器的类型,检测版本
- 各种语言版本的基于HMAC-SHA256的base64加密
- 实现MFC多语言版本
- Question2Answer 1.7.0 版本的中文语言包
- sqlite 各个语言实现版本库
- 解决多语言版本的.net方案
- java连接Oracle更改语言环境,语言版本切换
- 如何获取操作系统的语言版本
- C语言 二维数组转置之函数调用
- 小记!华为 8.0系统切换APP内语言(中英文)无效(其他版本手机均有效)。
- INNO SETUP 5.5.0以上版本中文语言包
- 回溯法 实现 排列组合(C 语言版本)
- 在 JDK 早期版本中使用 Java 5 的语言
- 【iOS】获取应用版本和语言
- 共享一下“资源文件做多语言版本”的类
- 输出宝塔型杨辉三角(Java语言)
- 仿webqq的webos框架zos,基于hoorayos2.0移植的纯html+js版本,后端语言.net
- INNO SETUP 5.5.0以上版本中文语言包
- 多语言网站(如何实现网站的多语言版本?)