大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
把 if 里面的scanf赋值给去掉,第一次已经赋值过了,你第二次再赋值把第一次赋值给覆盖了,打印的当然是你第二次输入的数值,还有毛用
创新互联专注于濮阳县企业网站建设,自适应网站建设,商城网站建设。濮阳县网站建设公司,为濮阳县等地区提供建站服务。全流程按需网站设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
#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);
}
#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;
}