C言語です。誰か教えてください。
あられ数というものがあります。次のルールに従って次の数が決まっていく
数列のことです。
1. はじめに勝手に数を与えます。
2. その数が偶数なら2で割り、奇数なら3倍して1を足すことによって次の
 数を決めます。
3. 新たに決まった数に対して、2を繰り返します。
たとえば、はじめに、7を選んだとしましょう。これは奇数ですから次の
数は7×3+1=22。22は偶数だから2で割って11。11は奇数だから3倍して1を足して34。これを順々に続けていくと
7,22,11,34,17,52,26,13,40,
20,10,5,16,8,4,2,1,4,2,1、・・・
と、最後に4,2,1を繰り返すようになります。途中の数は大きく
なったり小さくなったりと、雲の中で成長する霰(あられ)のように
振舞うので、霰数という名前がついています。
課題1:整数を入力すれば、あられ数を順々に計算して表示するプログラム
  を作りなさい。このとき、あられ数に1が出てきたら、プログラムは終了するようにしなさい。
課題2:あられ数が1に落ち着くまでに何ステップかかるのかを表示するプロ
  グラムを作成しなさい。(7の例だと16ステップで1になっています。)
課題3:3〜30に対するあられ数のステップ数を表示するプログラムを作
  成しなさい。

ifとかdo〜whileとか色々使ってみましたが、うまくいきませんでした、誰か教えてください。