为了账号安全,请及时绑定邮箱和手机立即绑定

大神给我解释一下,为啥第一种是正确结果第二种怎么就不对呢总是输出38在数组中不存在

大神给我解释一下,为啥第一种是正确结果第二种怎么就不对呢总是输出38在数组中不存在

C
名不见经传的小菜鸟 2017-11-10 21:52:14
方法一:#include<stdio.h>nt getIndex(int arr[5], int value){ int i; int index; for (i = 0; i < 5; i++) { if (arr[i] == value) { index = i; break; } else index = -1; } return index;}int main(){int arr[5]{ 22,12,19,38,17 }; int value = 38; int index = getIndex(arr, value); if (index != -1) { printf("%d在数组中存在,下标为:%d\n", value, index); } else { printf("%d在数组中不存在\n", value); } return 0;}方法二:#include<stdio.h>nt getIndex(int arr[5], int value){int i;int index;for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++){if (arr[i] == value){index = i;break;}elseindex = -1;}return index;}int main(){int arr[5]{ 22,12,19,38,17 };int value = 38;int index = getIndex(arr, value);if (index != -1){printf("%d在数组中存在,下标为:%d\n", value, index);}else{printf("%d在数组中不存在\n", value);}return 0;}
查看完整描述

1 回答

?
QLoveyourself

TA贡献3条经验 获得超1个赞

sizeof(arr) / sizeof(arr[0])的问题  不能在自定义函数里面用sizeof求数组的长度  你可以在你自定义函数里面做个 int a =sizeof(arr) / sizeof(arr[0]); 然后printf("%d",a);自检一下看看在自定义函数里面求数组长度是多少 

查看完整回答
1 反对 回复 2017-11-12
  • 1 回答
  • 0 关注
  • 733 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信