C语言蛇形矩阵的输出

来源:互联网 发布:java培训后如何找工作 编辑:程序博客网 时间:2024/05/24 16:16
#include<stdio.h>#include<malloc.h>int main(){int **p=NULL;int m,n,i,j,k=0;printf("请输入矩阵的行数:");scanf("%d",&m);if((p=(int**)malloc(sizeof(int**)*m))==NULL)//根据行数分配内存,分配双指针{printf("不能分配内存!!!\n");return 1;}printf("请输入矩阵的列数:");scanf("%d",&n);for(i=0;i<m;i++){if((p[i]=(int*)malloc(sizeof(int*)*n))==NULL)//为每一行分配指针,每一行有n个数{printf("不能分配内存!!!\n");return 1;}}for(j=0;j<n;j++){if(j%2==0)//判断是奇数列还是偶数列{for(i=0;i<m;i++)//偶数列就正序输出{p[i][j]=k++;}}else{for(i=m-1;i>=0;i--)//奇数列就倒序输出{p[i][j]=k++;}}}for(i=0;i<m;i++){for(j=0;j<n;j++){printf("%d\t",p[i][j]);}printf("\n");}for(i=0;i<m;i++)//分别释放每一行的指针{free(p[i]);p[i]=NULL;}free(p);//释放双指针p=NULL;return 0;}

0 0