| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 438 人关注过本帖
标题:二维数组,行列交换,找错!
只看楼主 加入收藏
defhvk
Rank: 2
等 级:论坛游民
帖 子:62
专家分:29
注 册:2011-4-8
结帖率:93.33%
收藏
已结贴  问题点数:10 回复次数:2 
二维数组,行列交换,找错!
#include<stdio.h>
void x(int a[3][4],int ,int );
void main()
{
  int a[3][4],b,c;
  printf("请输入一组数据:");
  for (b=0;b<3;b++)
  {
    for (c=0;c<4;c++)
      scanf ("%d",&a[b][c]);
  }
  x(&a[0],3,4);
  for (b=0;b<4;b++)
  {
    for (c=0;c<3;c++)
    {
        printf("%3d",a[b][c]);
        if(c==2)
        printf("\n");
    }
  }
}

void x(int a[3][4],int b,int c)
{
  int d,e;
  for (d=0;d<c;d++)
  {
    for (e=0;e<b;e++)
    {
      a[d][e]=a[e][d];/*行列交换*/

    }
  }
}
搜索更多相关主题的帖子: 交换 void 
2011-04-19 11:04
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
你的问题在于数组的下标越界了吧!a只有3行4列,你转置以后还用它来表示4行3列的数组!建议另定义一个数组来表示结果!

   唯实惟新 至诚致志
2011-04-19 11:12
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
程序代码:
#include<stdio.h>

void ArrRev(int a[][4],int b[][3])
{
    int i,j;

    for(i=0;i<3;i++)
        for(j=0;j<4;j++)
        {
            b[j][i]=a[i][j];
        }
}

void main()
{
  int a[3][4],b[4][3];
  int i,j;

  printf("请输入一组数据:\n");
  for (i=0;i<3;i++)
    for (j=0;j<4;j++)
    {
      scanf ("%d",&a[i][j]);
    }

 

  ArrRev(a,b);

  for (i=0;i<4;i++)
  {
    for (j=0;j<3;j++)
    {
        printf("%3d",b[i][j]);
        if(j==2)
        printf("\n");
    }
  }
}


   唯实惟新 至诚致志
2011-04-19 11:22
快速回复:二维数组,行列交换,找错!
数据加载中...
 
   



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

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