zoukankan      html  css  js  c++  java
  • 写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换

    写一个函数,使给定的一个3X3的二维整型数组转置,即行列互换

    题目解析:

    进行数组的行列互换,其关键在于数组互换的表达式 ar[i] [j] = ar[j] [i];其次在循环的时候,内层循环不能到达最大列,需要根据此时是第几行的交换来决定循环的次数,否则有可能数组行列交换之后最后又交换回原来的形状了。

    代码示例

    #include<stdio.h>
    
    void PrintArray(int ar[3][3])
    {
    	for(int i=0; i<3; ++i)
    	{
    		for(int j=0; j<3; ++j)
    		{
    			printf("%d ", ar[i][j]);
    		}
    		printf("
    ");
    	}
    }
    
    void ReverseArray(int ar[3][3])
    {
    	int tmp;
    	for(int i=0; i<3; ++i)
    	{
    		for(int j=0; j<i; ++j)
    		{
    			if(i != j) //中间数不发生变化
    			{
    				//交换两个数
    				tmp = ar[i][j];
    				ar[i][j] = ar[j][i];
    				ar[j][i] = tmp;
    			}
    			
    		}
    	}
    }
    
    int main()
    {
    	int array[3][3] = 
    	{
    		{1,2,3},
    		{4,5,6},
    		{7,8,9}
    	};
    
    	printf("转置前:
    ");
    	PrintArray(array);
    
    	//进行数组转置
    	ReverseArray(array);
    
    	printf("转置后:
    ");
    	PrintArray(array);
    
    	return 0;
    }
    

    运行结果:

    写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换

  • 相关阅读:
    SQL之CASE WHEN用法详解
    MySQL笔记汇总
    Linux常用命令
    TCP/IP速记
    数据结构和算法速记
    多线程相关概念
    线程安全&Java内存模型
    线程通讯wait&notify
    创建多线程的4种方式
    重写ThreadPoolTaskExecutor
  • 原文地址:https://www.cnblogs.com/inta/p/13356705.html
Copyright © 2011-2022 走看看