C語言,鋸齒數組

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章