1.鸡兔同笼(POJ3237)

一个笼子里面关了若干只鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,则笼子里面至少有多少只动物,至多有多少只动物?

nCases代表测试组数,nFeets代表每一组一共拥有的足数, 然后分为三种情况:

  1. 能被4整除,则也能被2整除,故最少是全为兔子 /4,最多是全为鸡 /2
  2. 不能被4整除,能被2整除,则最多是只有一只鸡,其他全是兔子
  3. 奇数情况,不成立
#include

int main() {
	int nCases, nFeets;       //组数与足数
	while (scanf_s("%d", &nCases) != EOF) {
		for (int i = 0; i < nCases; i++) {
			scanf_s("%d", &nFeets);
			if (nFeets % 4 == 0) {
				printf("%d %d\n", nFeets / 4, nFeets / 2);
			}
			else if (nFeets % 2 == 0) {
				printf("%d %d\n", nFeets / 4 + 1, nFeets / 2);
			}
			else {
				printf("0 0\n");
			}
		}
	}
	return 0;
}

安全证书问题

使用VS会出现'scanf': This function or variable may be unsafe. Consider using scanf_s ins这种错误,这是新版vc库添加的警告因为微软认为scanf的使用存在安全隐患,因为C/C++中的字符串处理都是以\0为截止符的,如果搜索不到\0,容易出现字符串越界所有vc扩展的所谓安全标准库,都添加了一个参数用以指定字符串参数的长度,用以避免这种安全隐患。

解决方法

  1. 按照编译出错的提示 将scanf全部替换成 scanf _s 即可KO。
  2. 编译器预设 在VS中,按alt+F7 打开工程属性,然后找到图片上指向的地方,添加一行内容_CRT_SECURE_NO_DEPRECATE 就OK了 完美跳过~

你可能感兴趣的:(程序设计实习,学习)