gdmao002 发表于 2021-12-15 16:11:37

关于程序编译运行直接结束

本帖最后由 gdmao002 于 2021-12-15 16:14 编辑

#include<stdio.h>


int search_x(int a[], int length, int x)
{
        int index = -1;
        for(int i = 0; i < length; i++)
        {               
                if (a == x)
                {
                        index = i;
                        break;
                }
        }
        return index;
//        if (index == -1) printf("Not Found\n");
//        else printf("%d\n", index);
}

int main()
{
        const int N;
        int X, a; //C99特性 可以在定义的时候,使用变量作为数组个数
       
        scanf("%d %d", &N, &X);
       
        //循环遍历获取每个元素的值               
        for(int i = 0; i < N; i++)
        {
                scanf("%d", &a);
        }
       
        //search_x(a, N, X); // 正常运行
        int ret = search_x(a, N, X); //问题行

        return 0;
}

{:10_266:}
问题描述:
代码编译运行的时候,直接就到了运行结束的界面。
也没有看到需要scanf 需要输入的地方。
大家看代码也能看到我这里是有输入的,但是编译运行后,直接就结束了。
一直找不到原因,请知道的大大说说,十分感谢!
N代表数组的个数,X代表要查找的元素!

傻眼貓咪 发表于 2021-12-15 16:41:28

声明 a 要在 scanf() 之后(N 必须确认赋值)

gdmao002 发表于 2021-12-15 16:49:00

傻眼貓咪 发表于 2021-12-15 16:41
声明 a 要在 scanf() 之后(N 必须确认赋值)

感谢找到问题了。我之前我试了下,直接调用函数search_x是可以运行的;
然后我以为放之前就可以了。然后就直接ret去接收返回值就问题了。然后就好一会没找到,谢谢你了!感谢{:7_112:}
页: [1]
查看完整版本: 关于程序编译运行直接结束