c语言解答2

来源:百度知道 编辑:UC知道 时间:2024/09/21 06:26:11
main()
{
int f(int b[][3]);
int a[3][3];
int i,j;
printf ("Please scanf your shu lie :\n");
for (i=0;i<=2;i++)
for (j=0;j<=2;j++)
{
scanf ("%d",&a[i][j]);
}
printf ("\n");
f(a);
for (i=0;i<=2;i++)
for (j=0;j<=2;j++)
{
printf ("%4d",a[i][j]);
printf ("\n");
}
}
int f(int b[3][3]);
{
int t,n,m;
for (t=0;t<=2;t++)
for (n=0;n<=2;n++)
{
m=b[t][n];
b[t][n]=b[n][t];
b[n][t]=m;
}
}
这是一个转置数列问题,那里有问题呀?
一直调不出来,为什么?那里出了问题!
谢谢解答!

当然拉,你看看你的int f(int b[3][3]); 这个分号多余,当然这不是重点,重点是你转置了2次,什么意思,就是原来你已经转置好的又被你转置回去了,这个int f(int b[3][3])还是要这么写
int f(int b[3][3]);
{
int t,n,m;
for(t=0;t<=2;t++)
for(n=0;n<=2-t;n++)
{
m=b[t][n];
b[t][n]=b[n][t];
b[n][t]=m;
}
}
你再看看啊对了,希望对你有帮助

改好了
#include <stdio.h>
void main()
{
void f(int b[][3]);
int a[3][3];
int i,j;
printf ("Please scanf your shu lie :\n");
for (i=0;i<=2;i++)
for (j=0;j<=2;j++)
{
scanf ("%d",&a[i][j]);
}
printf ("\n");
f(a);
for (i=0;i<=2;i++)
for (j=0;j<=2;j++)
{
printf ("%4d",a[i][j]);
printf ("\n");
}
}
void f(int b[3][3])
{
int t,n,m;
for (t=0;t<=2;t++)
for (n=0;n<=t;n++)
{
m=b[t][n];
b[t][n]=b[n][t];
b[n][t]=m;
}
}