将一个二维数组中的行列元素互换后各元素值加1。在主函数中输入一个矩阵,并调用此

谁知道啊

#include<stdio.h>
void main()
{
void change(int x[][3]);
int x[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j;
printf("原数组为\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{printf("%3d",x[i][j]);}
printf("\n");
}
change(x);
printf("行列互换后的数组为\n");
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{x[i][j]=x[i][j]+1;
printf("%3d",x[i][j]);}
printf("\n");
}
}
void change(int x[][3])//函数调用change(x) 这里的x是数组
{
int a;
a=x[0][1];x[0][1]=x[1][0];x[1][0]=a;
a=x[0][2];x[0][2]=x[2][0];x[2][0]=a;
a=x[1][2];x[1][2]=x[2][1];x[2][1]=a;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-21
#include <stdio.h>
#include <stdlib.h>
void change(int **mat,int r,int c)
{
int i,j,t;
for(i=0;i<r;i++)
for(j=i+1;j<c;j++)
{
t=mat[i][j];
mat[i][j]=mat[j][i];
mat[j][i]=t;
}
for(i=0;i<r;i++)
for(j=0;j<c;j++)
mat[i][j]+=1;
}

void main()
{
int **mat;
int r,c,i,j;
printf("输入矩阵的行列值:\n");
scanf("%d %d",&r,&c);
mat = (int **)malloc(r*sizeof(int *));
for(i=0;i<r;i++)
mat[i]=(int*)malloc(c*sizeof(int));
printf("输入矩阵的各元素值:\n");
for(i=0;i<r;i++)
for(j=0;j<c;j++)
scanf("%d",&mat[i][j]);
change(mat,r,c);
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
printf("%d\t",mat[i][j]);
printf("\n");
}
}
相似回答