我有以下代码,编译器说“'i'的名称查找已经改变了......”。 设置-fpermissive,它可以通过编译器......
for (i=1;i<MAXINUMBER-1;i++)
{
for (j=i;j>0;j--)
{
if (a[j]>a[j-1])
{
temp=a[j-1];
a[j-1]=a[j]; a[j]=temp;
}
else
break;
}
}
但我认为我没有改变'我'...... 那么我错过了什么? 非常感谢你们......
答案 0 :(得分:0)
很简单,
//the int i declaration below is like it's within the {} block
for (int i = 0; i < 10; i++)
{
//do something
}
//i is out of scope here, you can't use i any more, u must redeclare
//int i = 5; //ok!
//for (int i = 0; i < 20; i++) //ok!
for (i = 0; i < 20; i++) //no, you can't do this
解决问题的两种方法,
一,把我的宣言放在外面
int i;
for (i = 0; i < 10; i++)
二,再次申报
for (int i = 0; i < 10; i++)