★★★★请教:关于for循环中定义的变量的作用域★★★★

key_0423 2008-03-14 10:51:35
编译时候的错误是:变量i重复定义
for循环中定义的变量作用域只在for循环中啊,不应该有错的

谢谢了先^_^



————————————————————————————————————————————
代码如下:
————————————————————————————————————————————
//排序:该算法对于待排序的数组中的每一个元素,统计小于它的元素个数,
//然后利用这个信息,将各个元素放到有序数组的相应位置
#include <iostream>
using namespace std;
int main()
{
const int n = 6;
int array[n], s[n];

cout << "please enter " << n << " number:" << endl;
for (int i = 0; i != n; ++i)
{
cin >> array[i];
}

int Count[n];
for (int i = 0; i != n; ++i)
{
Count[i] = 0;
}

for (int i = 0; i != n-1; ++i)
{
for( int j = i+1; j != n; ++j)
{
if (array[i] < array[j])
{
Count[j] = Count[j] + 1;
}
else
{
Count[i] = Count[i] + 1;
}
}
}

for (int i = 0; i != n; ++i)
{
s[Count[i]] = array[i];
}

for (int i = 0; i != n; ++i)
{
cout << s[i] << " ";
}
return 0;
}
...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
key_0423 2008-03-15
  • 打赏
  • 举报
回复
谢谢大家^_^
billy1985 2008-03-14
  • 打赏
  • 举报
回复
在for的初始语句中声明的变量,按C++98标准的规定,有效期仅为for循环中
这跟编译器的设置有关,使用 /Zc:forScope 时。
如果变量因为存在一个在以前的范围内所做的声明而处在范围内,则将得到警告
ttkk_2007 2008-03-14
  • 打赏
  • 举报
回复
vc6就这样
  • 打赏
  • 举报
回复
你的编译器不符合标准,所以编译不过去。
baihacker 2008-03-14
  • 打赏
  • 举报
回复
以前的没有定义作用域,后来才说只在for内
VC6是认为在for以后的语句
其它的一般都认为是只在for内
qmm161 2008-03-14
  • 打赏
  • 举报
回复
换个IDE
野男孩 2008-03-14
  • 打赏
  • 举报
回复
换VC2005
homesos 2008-03-14
  • 打赏
  • 举报
回复
与编译器、编译选项有关。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧