实现一个"可变二维数组",这个二维数组的行数要求用户从键盘输入,每行的元素个数仍由用户从键盘输入. //数组元素值用户可以自定义.最后把二维数组打印出来.不要忘记释放数组内存. /*void main

#include
#include


int main()
{
 int **a; /*a用于指向动态创建的二维数组*/
 int i,j,n,m;
 printf("请输入行数:");
 fflush(stdout);
 scanf("%d",&m);
 a=(int **)malloc(sizeof(int *)*m); /*分配m个一唯指针类型空间,用来存放各行的地址*/
 if (a==NULL) {
  fprintf(stderr,"fail!\n");
  return -1;
 }
 for (i = 0; i   printf("请输入第%d行的元素个数",i+1);
  fflush(stdout);
  scanf("%d",&n);
  a[i]=(int *)malloc(sizeof(int)*(1+n));    /*为第i行分配n+1个int类型的空间,第一个元素用来存放这一行的元素数量*/
  if (a[i]==NULL) {
     fprintf(stderr,"fail!\n");
     return -1;
  }
  a[i][0]=n;/*将此行的元素数量保存到此行的第一个元素*/
  for (j=1; j<=n; j++) {               /*为第i行的n个元素赋值*/
   a[i][j]=1;
  }


 }


 for (i = 0; i   for (j=1; j<=a[i][0]; j++) {
   printf("%d",a[i][j]);
  }
  putchar('\n');
 }


 for (i = 0; i   free(a[i]);
 }
 free(a);/*释放a指针指向的空间*/
 return 0;
}

你可能感兴趣的:(c语言)