POJ 2750 鸡兔同笼
- 时间限制:
- 1000m
- 内存限制:
- 65536kB
- 描述
- 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物
- 输入
- 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,每行一个正整数a (a < 32768)
- 输出
- 输出包含n行,每行对应一个输入,包含两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用一个空格分开
如果没有满足要求的答案,则输出两个0。 - 样例输入
-
2320
- 样例输出
-
0 05 10
(1)、源代码:
#include <iostream>
using namespace std;
int main()
{
int group = 0;
cin >> group;
int num[100];
int min, max, i;
for(i = 0; i < group; i++)
cin >> num[i];
for(i = 0; i < group; i++)
{
if (num[i] % 2 != 0)
{
min = max = 0;
}
else
{
max = num[i] / 2;
if(num[i] % 4 == 0)
min = num[i] / 4;
else
min = ((num[i] - 2) / 4) + 1;
}
cout << min << " " << max << endl;
}
return 0;
}
using namespace std;
int main()
{
int group = 0;
cin >> group;
int num[100];
int min, max, i;
for(i = 0; i < group; i++)
cin >> num[i];
for(i = 0; i < group; i++)
{
if (num[i] % 2 != 0)
{
min = max = 0;
}
else
{
max = num[i] / 2;
if(num[i] % 4 == 0)
min = num[i] / 4;
else
min = ((num[i] - 2) / 4) + 1;
}
cout << min << " " << max << endl;
}
return 0;
}
(2)、解题思路:略
(3)、出现错误:compile error
error: name lookup of ‘i’ changed for ISO ‘for’ scoping
原因:它说的就是for循环中在“初始化”部分定义的变量的作用域范围的一个问题。
ISO/ANSI C++ 把在此定义的变量的作用域范围限定在 for 循环体 内,或者说,出了循环体之外这个变量就无效了。
但是在VC6中,i的作用域范围是函数作用域,在for循环外仍能使用变量i。
一开始出现错误就是在for循环中int i = 0; 了。