zoukankan      html  css  js  c++  java
  • 矩阵转置 动态内存实现

    #include<stdio.h>
    #include<stdlib.h>
    
    #define SWAP(X,Y,TEMP) ((TEMP)=(X),(X)=(Y),(Y)=(TEMP))
    
    #define MAX_SIZE 3
    
    #define CALLOC(P, N, S)
      if(!((P)=calloc(N, S))){
    	printf(stderr, "Insufficient memory");
    	exit(EXIT_FAILURE);
      }
      
    void transpose(int **a, int rows);
    int **make2dArray(int rows, int cols);
    
    int main(void)
    {
    	int **a;
    	a=make2dArray(MAX_SIZE,MAX_SIZE);
    	
    	for(int i=0,k=1; i<MAX_SIZE; i++)
    	    for(int j=0; j<MAX_SIZE; j++)
    			a[i][j]=k++;
    	transpose(a, MAX_SIZE);
    	for(int i=0; i<MAX_SIZE; i++)
    	    for(int j=0; j<MAX_SIZE; j++)
    	        printf("%d",a[i][j]);
    	for(int i=0; i<MAX_SIZE; i++)
    		free(a[i]);
    	free(a);
    	return 0;
    } 
    void transpose(int **a, int rows)
    {
    	for(int i=0; i<rows; i++)
    		for(int j=i+1,temp=0;j<rows; j++)
    			SWAP(a[i][j],a[j][i],temp);
    }
    int **make2dArray(int rows, int cols)
    {
    	int **x;
    	CALLOC(x,rows,sizeof(int*));
    	for(int i=0; i<rows; i++)
    		CALLOC(x[i],rows,sizeof(int));
    	return x;
    }
    

  • 相关阅读:
    第七组(69)团队展示
    结对编程作业
    同步异步和阻塞非阻塞
    TCP和UDP和IP和HTTP和socket
    http协议
    数据库基础知识
    准确的笑话
    Java实现多线程的方式
    HashMap
    HTTPS与HTTP
  • 原文地址:https://www.cnblogs.com/WALLACE-S-BOOK/p/9732303.html
Copyright © 2011-2022 走看看