复神 2021-12-28 20:40 采纳率: 80%
浏览 28
已结题

矩阵的转置,请问有人知道这个问题怎么改吗?

img


/* 编写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,输入下面的矩阵:
100 200 300
400 500 600
700 800 900
程序输出:
100 400 700
200 500 800
300 600 900
注意: 部分源程序存在文件program.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/

#include <stdio.h>
#include<stdlib.h>
void fun(int array[3][3])
{

/**********  Begin  **********/
int i,j;
for(i=0;i<3;i++)
    for(j=0;j<3;j++)
        int array[j][i]=array[i][j];

/**********   End  ***********/

}

void NONO( )
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
int i,j;
FILE *wf ,*in;
int array[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
in=fopen("a11.in","r");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
fscanf(in,"%d",&array[i][j]);
}
wf = fopen("a11.out", "w") ;
fun(array);
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
fprintf(wf,"%7d\n",array[i][j]);
}

fclose(wf) ;
fclose(in);

}

int main()
{
int i,j;
int array[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
for (i=0;i<3;i++)
{ for (j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("Converted array:\n");
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
NONO( );
system("pause");
return 0;
}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-12-28 21:44
    关注

    转置函数修改如下,供参考:

    void fun(int array[3][3])
    {
    /**********  Begin  **********/
        int i,j,tmp;
        for(i=0;i<3;i++)
            for(j=i;j<3;j++)
               {tmp=array[i][j];array[i][j]=array[j][i];array[j][i]=tmp;}
    /**********   End  ***********/
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月5日
  • 已采纳回答 12月28日
  • 创建了问题 12月28日

悬赏问题

  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来