奇偶数分离
时间限制:3000 ms | 内存限制:65535 KB
难度:1
输入
第一行有一个整数i(2<=i<30)表示有 i 组测试数据;
每组有一个整型偶数n。
输出
第一行输出所有的奇数
第二行输出所有的偶数
样例输入
2
10
14
样例输出
1 3 5 7 9
2 4 6 8 10
1 3 5 7 9 11 13
2 4 6 8 10 12 14
来源
描述
有一个整型偶数n(2<= n <=10000),你要做的是:先把1到n中的所有奇数从小到大输出,再把所有的偶数从小到大输出。
注意的是我编程的时候报了一个compile error(编译错误——语法错误)
错误信息如下:
./Source/main.cpp: In function ‘int main()’:
./Source/main.cpp:13:6: error: name lookup of ‘i’ changed for ISO ‘for’ scoping [-fpermissive]
for(i=0;i<n;i++)
^
./Source/main.cpp:13:6: note: (if you use ‘-fpermissive’ G++ will accept your code)
在VC 6 中,i的作用域范围是函数作用域,在for循环外仍能使用变量i 即:
for (int i = 0; i < n; ++i) {
//……
}
cout<< i<< endl;
可以通过
而
for (int i = 0; i < n; ++i) {
//……
}
int i = 5;
则编译出错。
在DEV C++ 中,i的作用域仅限于for循环,即:
for (int i = 0; i < n; ++i) {
//……
}
int i = 5;
可以通过
而
for (int i = 0; i < n; ++i) {
//……
}
cout<< i<< endl;
则编译出错。
在vs.net 中,两种都能通过,但是若在for循环外使用i是,会给出警告。
#include <iostream>
using namespace std;
int main()
{
int n,i;
cin>>n;
int a[30];
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n;i++)
{
for(int k=1;k<a[i];k=k+2)
{
cout<<k<<' ';
}
cout<<endl;
for(int j=2;j<=a[i];j=j+2)
{
cout<<j<<' ';
}
cout<<endl;
}
return 0;
}