参数类型问题(矩阵转置)

来源:百度知道 编辑:UC知道 时间:2024/05/28 11:58:16
#define N 3
#include<stdio.h>
void main ()
{ void translate (int *s[],int n);
int i,j;
int s[N][N];
printf("Input %d numbers :\n",N*N);
for (i=0;i<=2;i++)
for(j=0;j<=2;j++)
s[i][j]=i+j;
translate (s[0],N);
printf("Output S:\n");
for (i=0;i<=2;i++)
for(j=0;j<=2;j++)
{ printf("%d ",s[i][j]);
if(j==2) printf("\n");

}
printf("\n");

}

void translate (int *s[],int n)
{ int i,j,temp;
for (i=0;i<=n-1;i++)
for(j=0;j<i;j++)
{ temp=s[i][j];
s[i][j]=s[j][i];
s[j][i]=temp;

}

}
ompiling...
10-9.cpp
C:\Documents and Settings\hp\桌面\10-9.cpp(11) : error C2664: 'translate' : cannot convert parameter 1 from 'int [3]' to 'int *[]'

这样就行了
#define N 3
#include<stdio.h>
void main ()
{ void translate (int s[][N]);
int i,j;
int s[N][N];
printf("Input %d numbers :\n",N*N);
for (i=0;i<=2;i++)
for(j=0;j<=2;j++)
s[i][j]=i+j;
translate (s);
printf("Output S:\n");
for (i=0;i<=2;i++)
for(j=0;j<=2;j++)
{ printf("%d ",s[i][j]);
if(j==2) printf("\n");

}
printf("\n");

}

void translate (int s[][N])
{ int i,j,temp;
for (i=0;i<=N-1;i++)
for(j=0;j<i;j++)
{ temp=s[i][j];
s[i][j]=s[j][i];
s[j][i]=temp;

}

}

你应该好些看一下二维数组做函数参数和指针相关的内容,自己弄懂印象会更加深刻,有不懂的地方可以给我发消息

参数就是 int *s就可以

#define N 3
#include<stdio.h>
void main ()
{ void translate (int s[][3],int n);
int i,j;
int s[N][N];
printf("Input %d numbers :\n&qu