| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 639 人关注过本帖
标题:转置矩阵并输出,但是,为什么没有实现转置就输出了?请教、
只看楼主 加入收藏
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
结帖率:82.35%
收藏
已结贴  问题点数:20 回复次数:4 
转置矩阵并输出,但是,为什么没有实现转置就输出了?请教、
#include <stdio.h>
#define N 4
 main()
 {
     int a[N][N],i,j,t;
     t=0;
     for(i=0;i<N;i++)
     {
         for(j=0;j<N;j++)
         {
             if(j<N) a[i][j]=i+1;
         }
     }
     for(i=0;i<N;i++)
         {
             for(j=0;j<N;j++)
             {
                 t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;
             }
     }

     for(i=0;i<N;i++)
         {
             for(j=0;j<N;j++)
             {
                 printf("%2d",a[i][j]);
                 if(j>=N-1)
                 {
                     printf("\n");
                     break;
                 }
         }
         }
         getchar();
 }
搜索更多相关主题的帖子: include 
2016-11-05 18:51
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
能否详细说明一下关于“转置”~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-05 19:02
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
收藏
得分:0 
回复 2楼 九转星河
1111
2222
3333
4444换位
1234
1234
1234
1234

岂曰无衣,与子同袍!
2016-11-05 19:16
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:20 
程序代码:
/*画个坐标图

    j
  i00 01 02 03 
   10 11 12 13 
   20 21 22 23 
   30 31 32 33 
                                    
    倒置后的矩阵
    i                                      
  j00 10 20 30
   01 11 21 31
   02 12 22 32
   03 13 23 33------------
   只需置换
   00 01 02 03 
      11 12 13
         22 23
            33
            (其实00 11 22 33可以不用)
    化简一下,所需交换数为:

    01 02 03
       12 13
          23
         
     (其余的不作处理)
*/


#include <stdio.h>
#define N 4

 main()

 {
     int a[N][N],i,j,t;
     t=0;
     for(i=0;i<N;i++)
     {
         for(j=0;j<N;j++)
         {
             if(j<N) a[i][j]=i+1;
         }
     }
     for(i=0;i<N;i++)
         {
             for(j=i+1;j<N;j++)//只改一个地方, 把j=0改成 j=i或者改成j=i+1就行了,如果j=0则矩阵每个元素都会被交换两次,也就是复位了
             {
                 t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;
             }
     }

     for(i=0;i<N;i++)
         {
             for(j=0;j<N;j++)
             {
                 printf("%2d",a[i][j]);
                 if(j>=N-1)
                 {
                     printf("\n");
                     break;
                 }
         }
         }
         getchar();

 }

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-05 20:12
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
收藏
得分:0 
回复 4楼 九转星河
多谢指教!

岂曰无衣,与子同袍!
2016-11-06 09:30
快速回复:转置矩阵并输出,但是,为什么没有实现转置就输出了?请教、
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057122 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved