您的位置:首页 > 大数据 > 人工智能

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

2013-03-21 20:25 1066 查看
#include <stdio.h>

#include <stdlib.h>

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<m; 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<m; i++) { /*输出这个二维数组的内容*/

for (j=1; j<=a[i][0]; j++) {

printf("%d",a[i][j]);

}

putchar('\n');

}

for (i = 0; i<m; i++) { /*释放为a数组的每一行分配的空间*/

free(a[i]);

}

free(a);/*释放a指针指向的空间*/

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐