#include<stdio.h>
int Find(int n,int a[],int key)
{
int index=-1;
int i;//要把i定义在for循环外面
for(i=0;i<n;i++)
{
if(a[i]==key)
{
index=i+1;
break;
}
}
return index;
}
int main()
{
int n,a;
int i;//要把i定义在for循环外面
int aa[1000];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&aa[i]);
}
scanf("%d",&a);
printf("%d\n",Find(n,aa,a));
return 0;
}
此题的关键是要把循环变量定义在for循环外面,因为在自动评测系统回报错误:'for' loop initial declarations are only allowed in C99 mode,意思是:
只有c99标准才支持把变量放在for循环里面
c99的标准:
c99标准:
变量声明不必放在语句块的开头,for 语句提倡这么写 for(int i=0;i<100;++i) 就是说,int i 的声明放在里面,i 只在 for 里面有效。(VC没有遵守这条标准,i 在 for 外也有效;但vc2005里已经默认是i在外面不可见了,但有编译选项可以设置。)