鱼C论坛

 找回密码
 立即注册
查看: 1162|回复: 2

[已解决]关于程序编译运行直接结束

[复制链接]
发表于 2021-12-15 16:11:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 gdmao002 于 2021-12-15 16:14 编辑
  1. #include<stdio.h>


  2. int search_x(int a[], int length, int x)
  3. {
  4.         int index = -1;
  5.         for(int i = 0; i < length; i++)
  6.         {               
  7.                 if (a[i] == x)
  8.                 {
  9.                         index = i;
  10.                         break;
  11.                 }
  12.         }
  13.         return index;
  14. //        if (index == -1) printf("Not Found\n");
  15. //        else printf("%d\n", index);
  16. }

  17. int main()
  18. {
  19.         const int N;
  20.         int X, a[N]; //C99特性 可以在定义的时候,使用变量作为数组个数
  21.        
  22.         scanf("%d %d", &N, &X);
  23.        
  24.         //循环遍历获取每个元素的值               
  25.         for(int i = 0; i < N; i++)
  26.         {
  27.                 scanf("%d", &a[i]);
  28.         }
  29.        
  30.         //search_x(a, N, X); // 正常运行
  31.         int ret = search_x(a, N, X); //问题行

  32.         return 0;
  33. }
复制代码


问题描述:
代码编译运行的时候,直接就到了运行结束的界面。
也没有看到需要scanf 需要输入的地方。
大家看代码也能看到我这里是有输入的,但是编译运行后,直接就结束了。
一直找不到原因,请知道的大大说说,十分感谢!
N代表数组的个数,X代表要查找的元素!
最佳答案
2021-12-15 16:41:28
声明 a[N] 要在 scanf() 之后(N 必须确认赋值)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-12-15 16:41:28 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
声明 a[N] 要在 scanf() 之后(N 必须确认赋值)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-15 16:49:00 | 显示全部楼层
傻眼貓咪 发表于 2021-12-15 16:41
声明 a[N] 要在 scanf() 之后(N 必须确认赋值)

感谢找到问题了。我之前我试了下,直接调用函数search_x是可以运行的;
然后我以为放之前就可以了。然后就直接ret去接收返回值就问题了。然后就好一会没找到,谢谢你了!感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 09:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表