这两个c语言题目不会写代码,求大佬指教。

int main()
{
	double data = 0.0;
	while (cin >> data)
	{
		if (fabs(data - 0.0) <= 0.000001) { break; }

		if (data > 0.0) { cout << data - floor(data) << endl; }
		else { cout << data - ceil(data) << endl; }
	}
	return 0;
}

 

bool Date(string date, int* pnYear, int* pnMonth, int* pnDay)
{
	if ((NULL == pnYear) || (NULL == pnMonth) || (NULL == pnDay)) { return false; }
	if (8 != date.length()) { return false; }

	int nYear = atoi(date.substr(0, 4).c_str());
	int nMonth = atoi(date.substr(4, 2).c_str());
	int nDay = atoi(date.substr(6, 2).c_str());

	if (nYear <= 0) { return false; }
	if ((nMonth < 1) || (nMonth > 12)) { return false; }
	if ((nDay < 1) || (nDay > 31)) { return false; }
	
	switch (nMonth)
	{
	case 4:
	case 6:
	case 9:
	case 11:
		if (nDay > 30) { return false; }
		break;

	case 2:
		{
			bool bLeapYear = ((0 == nYear % 4) && (0 != nYear % 100)) || (0 == nYear % 400);
			if ((bLeapYear && nYear > 29) || (!bLeapYear && nYear > 28)) { return false; }
		}
		break;

	default: break;
	}

	*pnYear = nYear;
	*pnMonth = nMonth;
	*pnDay = nDay;

	return true;
}

int main()
{
	int nYear = 0;
	int nMonth = 0;
	int nDay = 0;

	if (Date("20070412", &nYear, &nMonth, &nDay)) { cout << "Year: " << nYear << ", Month: " << nMonth << ", Day: " << nDay << endl; }
	else { cout << "Date Error!" << endl; }
	return 0;
}