長いですがお願いします。どうしてもわかりません。助けてください。
データが0と1しか含まないと仮定して以下の方法で圧縮されたデータを解凍
するプログラムを作成してください。
圧縮前 0 0 0 1 1 1 0 0 0 0
圧縮後 3 , 3 , 4 \n

1、読んだ数字の数を数えるカウンターの値を1に初期化して、文字を読む前
  に整数型の変数numを0に初期化します。
2、データは3,3,4のようにカンマ区切りでファイルに記憶されており、左端
  は必ず0から始まっているいるものとしています。従って入力データの種類
  は以下の3種類です。
  (1)1から9までの数字
  (2)カンマ
  (3)行末記号。EOLともよばれ、\nのことです。
  そこで、getcharコマンドで、入力データの1行目を1文字ずつ読み取ります。
  読んだ文字がカンマか行末記号で無い間は、numを10倍した値に、呼んだ文字を
  数字に変更して加えます。(読んだ文字を数字に変更するには、文字の'0'を引きます。)
   num=0×10+5(numの値は5になります)
   num=5×10+9(numに値は59になります)
3、読んだ数字を配列aに代入し、カウンターの値に1を加えます。
4、読んだ文字が行末記号になるまで2から3までを繰り返します。
5、配列aの要素の値だけ、0や1を交互にプリントとします。データが入っている配列の要素数
  は、カウンターで数えてあります。
6、上の方法を繰り返して後19行処理しています。(入力データファイルには20行のデータが
  あります。)
7、配列aを引数といて、0もたは1の数をプリントする関数を作成してください。
8、サンプルデータsample3を入力としてプログラムを実行してください。

サンプルデータ
62,
35,4,23
30,14,18
32,2,6,2,20
33,2,4,2,21
34,2,2,2,22
34,6,12,4,6
1,5,26,4,2,4,8,2,3,2,5
6,4,20,5,4,5,5,2,5,2,4
11,3,14,4,10,4,2,2,7,2,3
13,5,9,3,14,5,9,2,2
16,4,5,3,18,3,10,2,1
18,9,20,4,8,2,1
20,6,22,4,6,2,2
22,4,22,4,3,3,4
23,4,20,8,7
25,3,18,3,13
28,4,10,4,16
32,10,20
62