请问在哪里出错了?题目是:

按如下函数原型编程计算并输出n×n阶矩阵的转置矩阵。其中,n由用户从键盘输入。已知n值不超过10。voidTranspose(int*a,intn);voidSwap(i... 按如下函数原型编程计算并输出n×n阶矩阵的转置矩阵。其中,n由用户从键盘输入。已知n值不超过10。
void Transpose(int *a, int n);
void Swap(int *x, int *y);
void InputMatrix(int *a, int n);
void PrintMatrix(int *a, int n);
输入提示信息:"Input n:"
输入格式:"%d"
输入提示信息:"Input %d*%d matrix:\n"
输出提示信息:"The transposed matrix is:\n"
输出格式:"%d\t"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Transpose(int *a, int n);
void Swap(int *x, int *y);
void InputMatrix(int *a, int n);
void PrintMatrix(int *a, int n);
int main()
{
int n,*p=NULL;
printf("Input n:");
scanf("%d",&n);
p=(int*)calloc(n*n,sizeof(int));
printf("Input %d*%d matrix:\n",n,n);
InputMatrix(p,n);
Transpose(p,n);
printf("The transposed matrix is:\n");
PrintMatrix(p,n);
free(p);
return 0;
}
void InputMatrix(int *a, int n)
{
int i,j;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%d",*(a+i)+j);
}
}
}
void Transpose(int *a, int n)
{
int temp[n][n],i,j;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
Swap(*(a+i)+j,&temp[j*n+i]);
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
Swap(&temp[i*n+j],*(a+i)+j);
}
}
}
void Swap(int *x, int *y)
{
y=x;
}
void PrintMatrix(int *a, int n)
{
int i,j;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
printf("%d\t",a[i*n+j]);
}
}
}
展开
 我来答
百度网友db864ff
2019-12-13 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.1万
采纳率:88%
帮助的人:3893万
展开全部
主要应该有两个错误,
①inputMatrix函数中,scanf中*(a+i)+j不对,应该是(a+i*n+j),前面不用加*。
②Transpose函数中调用Swap时错误,
一个是*值,一个是&,不对。另外应该是*(a+i*n+j)。
上海华然企业咨询
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步... 点击进入详情页
本回答由上海华然企业咨询提供
han冰zhi恋
高粉答主

2019-12-10 · 说的都是干货,快来关注
知道大有可为答主
回答量:2.4万
采纳率:81%
帮助的人:686万
展开全部
也没看到是什么题,最好还是把题发上来让我们大家给看看,也好给你找出哪里出错了。
追问
题目在啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式