void fun1(int a[N][N])
{
int i,j;
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
if (i>j)
{
a[i][j]+=a[j][i];
a[j][i]=0;
}
}
}
}
void fun2(int **a,int m,int n)
{
int i,j;
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
if (i>j)
{
*((int *)a+i*m+j)+=*((int *)a+j*m+i);
*((int *)a+j*m+i)=0;
}
}
}
}
void fun3(int *a,int m,int n)
//数组按行存储,可以看做一位数组,存取位置要自己控制
{
int i,j;
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
{
if (i>j)
{
*(a+i*m+j)+=*(a+j*m+i);
*(a+j*m+i)=0;
}
}
}
}
int main()
{
int b[5][5]={{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8},{5,6,7,8,9}};
//fun1(b);
//fun2((int **)b,5,5);
fun3(*b,5,5);
for (int i=0;i<5;i++)
{
for (int j=0;j<5;j++)
{
printf("%3d ",b[i][j]);
}
printf("\n");
}
return 0;
}