请问在哪里出错了?题目是:
按如下函数原型编程计算并输出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]);
}
}
} 展开
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]);
}
}
} 展开
2个回答
上海华然企业咨询
2024-10-28 广告
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步...
点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询