>>617じゃないが勝手に答えておく。

>amount[1] = amount[0]/2;
>amount[0] -= amount[1];
>for (i=0;i<2;i++) price += calc(amount[i]);

「2ヶ月に一回請求のため、使用料はまず1/2にされ」るので
入力した値をammount[0]とammount[1]に半分ずつ分けて、
calcでそれぞれの料金を計算し、その合計をpriceに入れている。

>addTable[][3] = {
>
>nRange=sizeof(addTable)/sizeof(addTable[0]);
addTableは加算額の料金表。
nRange=〜はaddTable[][3]の要素数(1個目の[]に入る数値)の計算。
addTable全体のサイズ(int型24個分)を、1要素のサイズ(int型3個分)で割ることで、
要素数(この場合は8)を取得できる。