user-0 提问: C语言编程题

回复:
user: user-1
content: 给楼主第二题一个简单的方法： #include <stdio.h> #include <string.h>  int main() { 	char s[6]; 	scanf("%s",s); 	printf("最后一位数:%c,几位数:%d",s[strlen(s)-1],strlen(s));  }

user: user-2
content: 引用 2 楼 user-2 的回复:#include <iostream>  //判断是否闰年 bool IsLeapYear(int nYear) { 	bool bIsLeapYear = false; 	if (0 == nYear % 100) 	{ 		if (0 == nYear % 400) 		{ 			bIsLeapYear = true; 		} 	} 	else 	{ 		if (0 == nYear % 4) 		{ 			bIsLeapYear = true; 		} 	}  	return bIsLeapYear; } //计算从公元1990年1月1日到指定时间的天数。 int YearToDay(int nYear, int nMonth, int nDay) { 	int nYearToDay = 0; 	bool bIsLeapYear =false;  	//以年为单位计算 	for (int i = 1990; i < nYear; ++i) 	{ 		bIsLeapYear = IsLeapYear(i);  		if (bIsLeapYear) 		{ 			nYearToDay += 366; 		} 		else 		{ 			nYearToDay += 365; 		} 	}  	//以月为单位累加 	bIsLeapYear = IsLeapYear(nYear); 	for (int j = 0; j < nMonth; ++j) 	{ 		if (1 == j || 3 == j || 5 == j || 7 == j || 8 == j || 10 == j || 12 == j ) 		{ 			nYearToDay += 31; 		} 		else if (4 == j || 6 == j || 9 == j || 11 == j) 		{ 			nYearToDay += 30; 		} 		else if (2 == j) 		{ 			if (bIsLeapYear) 				nYearToDay += 29; 			else 				nYearToDay += 28; 		}  		//以日为单位累加 		nYearToDay += nDay;  	} 	return nYearToDay; } int main() { 	int nStartDay = YearToDay(1995, 1, 1); 	int nEndDay = YearToDay(2000, 12, 10);  	int nSumOfDay = nEndDay - nStartDay + 1;  	std::cout << "从1990年1月1日（包含当天）到2000年12月10日（包含当天）总天数为：" << nSumOfDay << std::endl;  	return 0; }  2题都是我答的，结贴给分！ #include <iostream>  //判断是否闰年 bool IsLeapYear(int nYear) { 	bool bIsLeapYear = false; 	if (0 == nYear % 100) 	{ 		if (0 == nYear % 400) 		{ 			bIsLeapYear = true; 		} 	} 	else 	{ 		if (0 == nYear % 4) 		{ 			bIsLeapYear = true; 		} 	}  	return bIsLeapYear; } //计算从公元1990年1月1日到指定时间的天数。 int YearToDay(int nYear, int nMonth, int nDay) { 	int nYearToDay = 0; 	bool bIsLeapYear =false;  	//以年为单位计算 	for (int i = 1990; i < nYear; ++i) 	{ 		bIsLeapYear = IsLeapYear(i);  		if (bIsLeapYear) 		{ 			nYearToDay += 366; 		} 		else 		{ 			nYearToDay += 365; 		} 	}  	//以月为单位累加 	bIsLeapYear = IsLeapYear(nYear); 	for (int j = 0; j < nMonth; ++j) 	{ 		if (1 == j || 3 == j || 5 == j || 7 == j || 8 == j || 10 == j || 12 == j ) 		{ 			nYearToDay += 31; 		} 		else if (4 == j || 6 == j || 9 == j || 11 == j) 		{ 			nYearToDay += 30; 		} 		else if (2 == j) 		{ 			if (bIsLeapYear) 				nYearToDay += 29; 			else 				nYearToDay += 28; 		} 	}  	//以日为单位累加 	nYearToDay += nDay;  	return nYearToDay; } int main() { 	int nStartDay = YearToDay(1995, 1, 1); 	int nEndDay = YearToDay(2000, 12, 10);  	int nSumOfDay = nEndDay - nStartDay + 1;  	std::cout << "从1990年1月1日（包含当天）到2000年12月10日（包含当天）总天数为：" << nSumOfDay << std::endl;  	return 0; }  //下面这个对，上面一个把nDay不小心放到for循环里了。

user: user-2
content: #include <iostream>  //判断是否闰年 bool IsLeapYear(int nYear) { 	bool bIsLeapYear = false; 	if (0 == nYear % 100) 	{ 		if (0 == nYear % 400) 		{ 			bIsLeapYear = true; 		} 	} 	else 	{ 		if (0 == nYear % 4) 		{ 			bIsLeapYear = true; 		} 	}  	return bIsLeapYear; } //计算从公元1990年1月1日到指定时间的天数。 int YearToDay(int nYear, int nMonth, int nDay) { 	int nYearToDay = 0; 	bool bIsLeapYear =false;  	//以年为单位计算 	for (int i = 1990; i < nYear; ++i) 	{ 		bIsLeapYear = IsLeapYear(i);  		if (bIsLeapYear) 		{ 			nYearToDay += 366; 		} 		else 		{ 			nYearToDay += 365; 		} 	}  	//以月为单位累加 	bIsLeapYear = IsLeapYear(nYear); 	for (int j = 0; j < nMonth; ++j) 	{ 		if (1 == j || 3 == j || 5 == j || 7 == j || 8 == j || 10 == j || 12 == j ) 		{ 			nYearToDay += 31; 		} 		else if (4 == j || 6 == j || 9 == j || 11 == j) 		{ 			nYearToDay += 30; 		} 		else if (2 == j) 		{ 			if (bIsLeapYear) 				nYearToDay += 29; 			else 				nYearToDay += 28; 		}  		//以日为单位累加 		nYearToDay += nDay;  	} 	return nYearToDay; } int main() { 	int nStartDay = YearToDay(1995, 1, 1); 	int nEndDay = YearToDay(2000, 12, 10);  	int nSumOfDay = nEndDay - nStartDay + 1;  	std::cout << "从1990年1月1日（包含当天）到2000年12月10日（包含当天）总天数为：" << nSumOfDay << std::endl;  	return 0; }  2题都是我答的，结贴给分！

user: user-2
content: #include <iostream>  int main() { 	int n = 0; 	std::cout << "please input a int value(n>0 && n < 100000)" << std::endl; 	std::cin >> n; 	if (n <= 0 || n>=100000) 	{ 		std::cout << "error input! n value is " << n << std::endl; 		return 0; 	}  	int nSigle = 0; 	nSigle = n % 10; 	std::cout << "个位数为：" << nSigle << std::endl;  	int nLen = 0; 	 	if (n < 10) 		nLen = 1; 	else if(n < 100) 		nLen = 2; 	else if (n < 1000) 		nLen = 3; 	else if (n < 10000) 		nLen = 4; 	else 		nLen = 5; 	std::cout << "该正整数的位数是" << nLen << std::endl;  	return 0; }  第二题答案，请给分！