#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;
}