- #include
- #include 3.#include 4.void main (void) 5.{ int a[4][4], (*p)[4]; int i=0, j=0,t; for(i=0; i<4; i++) { for(j=0; j<4; j++) { scanf("%d",&a[i][j]); if(j == 3) { printf("\n"); } } } //输入矩阵 for(i=0,j=0,p=a; i<4; i++,j++) { t = ((p+i)+j); ((p+i)+j) = ((p+j)+i); ((p+j)+i) = t; } //转置矩阵 for(i=0; i<4; i++) { for(j=0; j<4; j++) { printf("%5d",a[i][j]); if(j == 3) { printf("\n"); } } } //输出矩阵 system("pause"); return 0; }
求助:原题目是用指针实现矩阵的转置,现在我不知道自己错在哪里了。。。拜托大家帮我看一下
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- su_ds 2019-04-14 17:29关注
int main (void)
{
int a[4][4], b[4][4];
int i=0, j=0;for (i=0; i<4; i++) { for (j=0; j<4; j++) { scanf("%d",&a[i][j]); if (j == 3) { printf("\n"); } } } //输入矩阵 for (i=0; i<4; i++) { for(j=0; j<4; j++) { b[j][i] = a[i][j]; } } //转置矩阵 for (i=0; i<4; i++) { for (j=0; j<4; j++) { printf("%5d",b[i][j]); if (j == 3) { printf("\n"); } } } //输出矩阵 system("pause"); return 0;
}
或者
int main (void)
{
int a[4][4], *p;
int i=0, j=0, t;for (i=0; i<4; i++) { for (j=0; j<4; j++) { scanf("%d",&a[i][j]); if (j == 3) { printf("\n"); } } } //输入矩阵 for (i=0; i<4; i++) { for(j=i+1; j<4; j++) { p = &(a[i][j]); t = *p; *p = a[j][i]; a[j][i] = t; } } //转置矩阵 for (i=0; i<4; i++) { for (j=0; j<4; j++) { printf("%5d",a[i][j]); if (j == 3) { printf("\n"); } } } //输出矩阵 system("pause"); return 0;
}
解决 无用评论 打赏 举报
悬赏问题
- ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
- ¥15 有赏,i卡绘世画不出
- ¥15 如何用stata画出文献中常见的安慰剂检验图
- ¥15 c语言链表结构体数据插入
- ¥40 使用MATLAB解答线性代数问题
- ¥15 COCOS的问题COCOS的问题
- ¥15 FPGA-SRIO初始化失败
- ¥15 MapReduce实现倒排索引失败
- ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
- ¥15 找一位技术过硬的游戏pj程序员