使用数组的程序的设计(20分)
(1)将一个N×N矩阵转置(行列互换)后输出。要求使用数组存放矩阵,设计转置函数Trans()实现矩阵的转置(行列互换 ),不能使用全局变量和全局数组。
(2)主函数:设计数组存放矩阵,然后调用转置函数Trans()实现矩阵的转置,再调用输出函数Output()打印输出转置后的矩阵。
初始矩阵:
11 22 33
44 11 55
66 77 88
转置后的矩阵:
11 44 66
22 11 77
33 55 88
//矩阵逆置
#include<stdio.h>
void Trans(int a[3][3],int b[3][3]){
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
b[i][j]=a[j][i];
}
}
}
int output(int a[3][3],int b[3][3]){
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
printf("%d",b[i][j]);
}
printf("\n");
}
return 0;
}
int main(){
int a[3][3],b[3][3];
int i,j;
printf("请输入一个3*3标准矩阵:");
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
}
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
printf("%d",&a[i][j]);
}
}
Trans(a,b);
output(a,b);
return 0;
}
你只是输出没加空格和换行
printf()函数中变量前不要加&
你题目的解答代码如下:
#include <stdio.h>
void Trans(int a[3][3], int b[3][3])
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
b[i][j] = a[j][i];
}
}
}
int output(int a[3][3], int b[3][3])
{
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d ", b[i][j]);
}
printf("\n");
}
return 0;
}
int main()
{
int a[3][3], b[3][3];
int i, j;
printf("请输入一个3*3标准矩阵:");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
scanf("%d", &a[i][j]);
}
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
printf("%d ", a[i][j]);//&去掉
}
printf("\n");
}
Trans(a, b);
output(a, b);
return 0;
}
如有帮助,望采纳!谢谢!