変数 daysInMonth を初期化する必要があることは理解していますが、その日の有効性を判断するために必要な時点での値がユーザーの入力に依存しているため、その方法がわかりません。
int daysInMonth; //number of days in month read in
daysInMonth を決定するコードの一部
if(month == 1)
daysInMonth = 31;
エラーが発生するコード
//User number of days in month to check to see if day is valid
if(day > 0 && day <= daysInMonth)
dayValid = true;
else
dayValid = false;