标题:用指针交换矩阵问题
只看楼主
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
已结贴  问题点数:20 回复次数:2 
用指针交换矩阵问题
#include<stdio.h>
#include<stdlib.h>
int main()
{
    void change(int (*p)[3]);
    int b[3][3]={1,2,3,4,5,6,7,8,9};
    change(b);
    printf("原来的矩阵为:\n");
    for(int i=0;i<3;i++)
   {
      for(int j=0;j<3;j++)
        printf("%d",b[i][j]);
      
      printf("\n");
   }
       printf("现在的矩阵为:\n");
      change(b);
     for(int i=0;i<3;i++)
   {
      for(int j=0;j<3;j++)
        printf("%d",b[i][j]);
      
      printf("\n");
   }  
   system("pause");
   return 0;
}
void change(int (*p)[3])
{
     int t;
     for(int i=0;i<3;i++)
      for(int j=0;j<i;j++)                                    //这里改成j<3为什么就不对了
         {
              t=(*(p+j))[i];
              (*(p+j))[i]=(*(p+i))[j];
              (*(p+i))[j]=t;
         }
}
搜索更多相关主题的帖子: include change system 
2017-06-14 17:07
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:20 
用鼠标画的,你自己带入代码想想。


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-14 17:27
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
得分:0 
回复 2楼 renkejun1942
是不是 若果<3 循环时把已经交换过的矩阵又换成了原来的矩阵

#include<stdio.h>
int main()
{
    int a[2][3]={1,2,3,4,5,6};
    int b[3][2],i,j;
    printf("array a:\n");
    for(i=0;i<=1;i++)
    {
        for(j=0;j<=2;j++)                        //用数组为什么不写成j<i?
        {
            printf("%5d",a[i][j]);
            b[j][i]=a[i][j];
        }
        printf("\n");
    }
    printf("array b:\n");
    for(i=0;i<=2;i++)
    {
        for(j=0;j<=1;j++)
        printf("%5d",b[i][j]);
        printf("\n");
    }
    return 0;
}
2017-06-14 17:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-477922-1-1.html




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

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