#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int **a,b,c,i;
printf("请输入行数:");
scanf("%d",&b);//b是行数
a=(int **)malloc(sizeof(int **)*b);
if (a==NULL) {
fprintf(stderr,"分配失败");
exit(1);
}
for (i = 0; i<b; i++) {
printf("请输入第%d行的元素个数:",i+1);
scanf("%d",&c);//C是输入的元素个数
a[i]=(int *)malloc(sizeof(int)*(c+1));/*为第i行分配c+1个int空间,多出来的一个位置用于保存这一行的长度*/
if (a[i]==NULL) {
fprintf(stderr,"分配失败");
exit(1);
}
a[i][0]=c; /*将第i行的长度保存到第i行的第一个元素中*/
for (c=1; c<=a[i][0]; c++) {
a[i][c]=1;
}
}
for (i = 0; i<b; i++) {
for (c=1; c<=a[i][0]; c++) {
printf("%d",a[i][c]);
}
putchar('\n');
free(a[i]); /*释放为第i行分配的空间*/
}
free(a); /*释放为a分配的空间*/
return 0;
}