|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 xhynb 于 2021-12-29 00:14 编辑
- #include <stdio.h>
- int main(void)
- {
- int array[10] = {1,100,0,87,65,43,98,23,56,79};
- int i,num ;
-
- printf("Please input a number:");
- scanf("%d",&num);
-
- for(i = 0;i < 10;i++)
- {
- if(array[i] == num)
- {
- printf("This number is in the array");
- }
- else
- {
- printf("NOT!");
- }
-
- }
复制代码
为什么运行后会显示
,
然后把else
{
printf("NOT!");
}
删掉后当数字在数组中是显示就正常了。
思路或者哪里写错了,求解答
本帖最后由 jackz007 于 2021-12-29 00:30 编辑
一个 if ... else ... 周期就把 num 是否在 array 内给判断了,那还要循环干什么?如果 num 不在 array 中,是不是得在逐一比较完 array[] 的所有十个元素之后,才能最后下结论,而不是只比较一个元素就武断地下结论?
而且,就算 num 不在 array[] 中,那也犯不着连续打印 10 次 NOT 吧?所以,结论应该在循环完以后再下。关键是,在发现 num 存在于 array[] 的时候,必须及时终止循环。
- #include <stdio.h>
- int main(void)
- {
- int array[10] = {1,100,0,87,65,43,98,23,56,79} , i , num ;
- for(;;)
- {
- printf("Please input a number : ") ;
- scanf("%d" , & num) ;
- for(i = 0 ; i < 10 ; i ++) if(array[i] == num) break ;
- if(i < 10) printf("This number is in the array\n\n") ;
- else printf("NOT!\n\n") ;
- }
- }
复制代码
|
|