将一个二维数组中的行列元素互换后各元素值加1。在主函数中输入一个矩阵,然后输出转化后的矩阵

请写具体点 谢谢

#include <stdio.h>
#include <stdlib.h>
void change(int **mat,int r,int c)
{
int i,j,t;
//下面两层循环完成矩阵的转置。具体来说就是将a[i][j]和a[j][i]的内容交换。
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;
}
//转置后矩阵各元素值加1.
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");
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-21
function b=change_add1(a)
a=a';%输入的矩阵转置;
b=a+1;%将矩阵元素加1;
end
相似回答