运行达不到预期的结果

不知道是哪里出了问题,看了超级久也找不出来,运行不到预期结果,麻烦看看哪里出了问题啦

img

img

把数组b的长度定为n,然后数组的下标从0开始,判断数组b中是否存在a可以加个标志来判断。

修改如下:


#include <stdio.h>

int main(void){
    
    int n,c;
    scanf("%d",&n);
    
    int i;
    int b[n]; // 数组b的长度为n 
    // 同上,数组下标从0开始 
    for(i=0;i<n;i++){
        scanf("%d",&b[i]);
    } 
    
    int a;
    scanf("%d",&a);
    
    int find=0;  // 寻找标志,默认0为数组b中没有a 
    // 同上,数组下标从0开始 
    for(i=0;i<n;i++){
        if(b[i]==a){  // 如果数组中找到和a相同的值 
            find=1;   // 寻找标志置1,表示在数组b中找到a 
            printf("%d",i);
            break;
        }
    }
    
    // find=0,表示遍历完整个数组b都没找到和a的值相同的元素,则打印-1 
    if(find==0){
        printf("-1");
    }
    
    return 0;
} 

img

int b[i]这个错了
应该是
int b[n]
然后你的代码缩进调整一下,看着太别扭了。

把代码缩进弄弄,自己看的不难受嘛?
你这里数组定义有问题,改了自己再试试

img