c语言 n*n矩阵转置

比如输入3123456789输出147258369下面是我的程序,不知道哪里错了,高手指导一下,谢啦#include<stdio.h>voidmain(){voidcha... 比如输入
3
1 2 3
4 5 6
7 8 9
输出
1 4 7
2 5 8
3 6 9
下面是我的程序,不知道哪里错了,高手指导一下,谢啦
#include<stdio.h>
void main()
{void change(int N);
int n;
scanf("%d",&n);
printf("\n");
change(n);
}
void change(int N)
{int i,j;
int a[N][N],b[N][N];
for(i=0;i<=N;i++)
{for(j=0;j<=N;j++)
scanf("%d",&a[i][j]);
printf("\n");
}
for(i=0;i<=N;i++)
{for(j=0;j<=N;j++)
b[i][j]=a[j][i];
}
for(i=0;i<=N;i++)
{for(j=0;j<=N;j++)
printf("%d",b[i][j]);
printf("\n");
}

}
展开
 我来答
来自碧云池耿直的甘蓝
2012-03-03
知道答主
回答量:38
采纳率:100%
帮助的人:19.1万
展开全部
我改了,可以运行

#include<stdio.h>
void main()
{void change(int N);
int n;
scanf("%d",&n);
printf("\n");
change(n);
}
void change(int N)
{int i,j;
int a[N][N],b[N][N],k=1;
a[0][0]=1;
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
{
a[i][j]=k;
k++;
}
printf("\n");
}
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
b[i][j]=a[j][i];
}
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%d ",b[i][j]);
printf("\n");
}

}
追问
int a[N][N],b[N][N],k=1;
a[0][0]=1;
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
{
a[i][j]=k;
k++;
}
为什么要赋值啊,什么意思
追答
不好意思,原来我看错了
只要把<=都改为< 号就行了,因为数组从0开始
caoyonggang90
2012-03-03
知道答主
回答量:30
采纳率:0%
帮助的人:16.5万
展开全部
a[N][N],b[N][N],数组定义错误,N是变量
更多追问追答
追问
那怎么解决呢
追答
定义到具体几行几列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式