この問題を解いていただけませんか

1)プログラムに0以上59以下の値をとる二つの整数を与える.これらの2数を順にm, nとする.これらをm分n秒と解釈する.
与えられた時間の(秒単位で)半分となる時間をコロン(:)で区切られた二組の二桁の整数で表示するプログラムを作成しなさい.
課題実行においては以下の点に注意すること.
表示する分数、秒数が9以下のときは10の桁にはスペースを置く.
秒数が2で割り切れないときは切り捨てを行う.
m,nのどちらかが0以上59以下でなければ,errorのみを表示すること.

2)プログラムに三つの整数を与える.これらの数を順にならべたとき,
最初から大きさが2番目にあたる数を表示するプログラムを作成しなさい.

3)3個の整数を入力し(順に a, d, n とする),初項 a ,項差 d の等差数列を
n 項表示するプログラムを作成しなさい.ただし,項数が 0 以下の場合は,
何も表示しないもの(改行のみ)とする.また,数列を表示するときは,
数の前に1文字のスペースを挿入することとし,最後の数を表示したところで改行すること.
プログラムを作成するとき,初項 a の等差数列の第 i 項
(これを a(i) と表す)を求める関数 int ap( int a, int d, int i ) を定義し,
これを main 関数から呼び出し,結果の表示は main 関数内で行うものとする.
また,関数 ap は,第一引数に初項 a ,第二引数に項差 d ,
第三引数に求める項の番号 i を与えると,戻り値として等差数列の
第 i 項 a( i ) を返すものとする.