c语言函数矩阵翻转 矩阵翻转c语言思路

c语言矩阵翻转求助

把 if 里面的scanf赋值给去掉,第一次已经赋值过了,你第二次再赋值把第一次赋值给覆盖了,打印的当然是你第二次输入的数值,还有毛用

创新互联专注于濮阳县企业网站建设,自适应网站建设,商城网站建设。濮阳县网站建设公司,为濮阳县等地区提供建站服务。全流程按需网站设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

C语言矩阵逆时针翻转(先输入两个整数,一个是矩阵阶数,一个是翻转次数)

#include stdio.h

#include stdlib.h

//显示数据

void Print(int **a,int m)

{

int i,j;

for(i=0;im;i++)

{

for(j=0;jm;j++)

printf("%3d",a[i][j]);

printf("\n");

}

}

void main(void)

{

int m,n;//阶数和逆转次数

int i,j;

int **a;//原数组

int **b;//逆转后数组

scanf("%d%d",m,n);

if(m=0||n=0)

return;

//分配内存

a=(int**)malloc(sizeof(int*)*m);

b=(int**)malloc(sizeof(int*)*m);

if((a==NULL) || (b==NULL))

return;

for(i=0;im;i++)

{

a[i]=(int*)malloc(sizeof(int)*m);

b[i]=(int*)malloc(sizeof(int)*m);

if((a==NULL) || (b==NULL))

return;

}

//录入数据

for(i=0;im;i++)

for(j=0;jm;j++)

scanf("%d",a[i][j]);

//显示数据:原数组

//Print(a,m);

//4种状态

n=n%4;

switch (n)

{

case 0://不变

Print(a,m);

break;

case 1://逆旋一次

for (i=0;im;i++)

for(j=0;jm;j++)

{

b[m-1-j][i]=a[i][j];//对应关系

}

Print(b,m);

break;

case 2://逆旋二次

for (i=0;im;i++)

for(j=0;jm;j++)

{

b[m-1-i][m-1-j]=a[i][j];

}

Print(b,m);

break;

case 3://逆旋三次

for (i=0;im;i++)

for(j=0;jm;j++)

{

b[j][m-1-i]=a[i][j];

}

Print(b,m);

break;

}

//释放内存

for(i=0;im;i++)

{

free(a[i]);

free(b[i]);

}

free(a);

free(b);

}

C语言的矩阵翻转

#include stdio.h

int main() {

int M,N,T;

scanf("%d %d %d",M,N,T);  

int mat[M][N];

printf("请输入原始矩阵:\n");

for(int i=0; iM; i++) {

for(int j=0; jN; j++) {

scanf("%d",mat[i][j]);

}

}

printf("原矩阵为:\n");

for(int i=0; iM; i++) {

for(int j=0; jN; j++) {

printf("%d ",mat[i][j]);

}

printf("\n");

}

int temp = 0;

if(T==0) {

printf("左右翻转后:\n");

for(int i=0; iM; i++) {

for(int j=0; jN/2; j++) {

temp = mat[i][j];

mat[i][j] = mat[i][N-j-1];

mat[i][N-j-1] = temp;

}

}

for(int i=0; iM; i++) {

for(int j=0; jN; j++) {

printf("%d ",mat[i][j]);

}

printf("\n");

}

}

if(T==1) {

printf("上下翻转后:\n");

for(int i=0; iM/2; i++) {

for(int j=0; jN; j++) {

temp = mat[i][j];

mat[i][j] = mat[N-i-1][j];

mat[N-i-1][j] = temp;

}

}

for(int i=0; iM; i++) {

for(int j=0; jN; j++) {

printf("%d ",mat[i][j]);

}

printf("\n");

}

}

return 0;

}


名称栏目:c语言函数矩阵翻转 矩阵翻转c语言思路
网页路径:http://azwzsj.com/article/doiccgh.html