为啥同样的代码在线编程就可以,devcpp运行不了

如题:

img

#include<stdio.h>

int search (int key , int a[] )
{
       int ret = -1 ;
       for( int i = 0; i < 13  ;i++ )
       {
           if ( key  ==  a [i])
           {
                ret = i;
               break; 
              }
       }
       return ret ;
}
 
int main (){
    int a[] = {2,4,6,8,10,12,14,16,18,20,22,24,16};
    int x;
    scanf("&d",&x);
    int r = search (x , a);

    if (r == -1)
    {
        printf("该数组中没有这个数\n");
    }
    else
    {
        printf("该数组中存在这个数\n");
    }
    printf("%d",r);
    return 0;
}




img

把int i变量定义放到for循环外面

#include<stdio.h>
int search (int key , int a[] )
{
       int ret = -1 ,i;
       for( i = 0; i < 13  ;i++ )
       {
           if ( key  ==  a [i])
           {
                ret = i;
               break; 
           }
       }
       return ret ;
}
int main (){
    int a[] = {2,4,6,8,10,12,14,16,18,20,22,24,16};
    int x,r;
    scanf("&d",&x);
    r = search (x , a);
    if (r == -1)
    {
        printf("该数组中没有这个数\n");
    }
    else
    {
        printf("该数组中存在这个数\n");
    }
    printf("%d",r);
    return 0;
}