| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2074 人关注过本帖
标题:请问怎么实现二维数组的行列互换?二级的题目。。
只看楼主 加入收藏
霉菌
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-7-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
请问怎么实现二维数组的行列互换?二级的题目。。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

void fun (int array[3][3])
{

  
}
void main()
{
  FILE *wf;
  int i,j;
  int array [3][3]={{100,200,300},{400,500,600},{700,800,900}};
  system("CLS");
  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 ");
     }   
/******************************/
  wf=fopen("out.dat","w");
  for (i=0;i<3;i++)
     { for (j=0;j<3;j++)
          fprintf(wf,"%7d ",array[i][j]);
       fprintf(wf,"\n");
     }   
  fclose(wf);
/*****************************/
}
搜索更多相关主题的帖子: 行列 int array for printf 
2018-07-03 18:38
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:7 
程序代码:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

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

 }

2018-07-03 20:40
梦想远航lyz
Rank: 2
等 级:论坛游民
威 望:1
帖 子:39
专家分:76
注 册:2017-10-23
收藏
得分:7 
这个简单,比如说某个元素array[i][j],把行列转化就行了array[j][i]
#include <stdio.h>

int main()
{
    int array [3][3]={{100,200,300},{400,500,600},{700,800,900}};
    int tran_array[3][3] = {};
    int i,j;
    for(i = 0;i < 3;i++)
    {
        for(j = 0;j < 3;j++)
        {
            tran_array[j][i] = array[i][j];
        }
    }
   
    return 0;
}
2018-07-03 22:36
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:7 
回复 3楼 梦想远航lyz
3楼那个代码转置后输出看看结果看看~
而且楼主就地转置和另外用数组保存也没有说明清楚,看样子是就地转置的~


这个可以看看~

程序代码:
#include<stdio.h>

void fun( int*,size_t );
void swap( int*,int* );

void print( const int*,size_t,size_t );

int main( void )
{
    
    int arr[][3]=
    {
        {1,2,3},
        {4,5,6},
        {7,8,9}
    };
    
    const size_t size=sizeof (arr)/sizeof (*arr);
    
    fun(*arr,size);
    print(*arr,size,size);
    
    return 0;
}

void fun( int* arr,size_t size )
{
             
    size_t i=0;
    size_t j=1;
    
    if (size==0)
        return ;

    for (;i!=size-1;++j!=size?1:(j=++i+1))
        swap(arr+size*i+j,arr+size*j+i);        
}

void swap( int* p,int* q )
{
    const int t=*p;
    
    *p=*q;
    *q=t;
}

void print( const int* arr,size_t col,size_t row )
{
    const size_t size=(col+1)*row;
    
    size_t i;    
    
    for (i=0;i!=size;++i)
    {
        const size_t m=i%(row+1);
        const size_t n=col*(i/col)+i%row-i/(row+1);
       
        printf("%-4d\000\n"+5*(m==row),*(arr+n));
    }
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-07-04 19:27
快速回复:请问怎么实现二维数组的行列互换?二级的题目。。
数据加载中...
 
   



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

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