#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;
}
C语言蛇形矩阵的输出
最新推荐文章于 2024-07-02 18:06:22 发布