判断一个数是否在数组中
本帖最后由 xhynb 于 2021-12-29 00:14 编辑#include <stdio.h>
int main(void)
{
int array = {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 == num)
{
printf("This number is in the array");
}
else
{
printf("NOT!");
}
}
为什么运行后会显示,
然后把else
{
printf("NOT!");
}
删掉后当数字在数组中是显示就正常了。
思路或者哪里写错了,求解答{:10_254:} 本帖最后由 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 = {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 == num) break ;
if(i < 10) printf("This number is in the array\n\n") ;
else printf("NOT!\n\n") ;
}
}
#include <stdio.h>
int main(void)
{
int array = {1,100,0,87,65,43,98,23,56,79};
int i,num ,j=0;
printf("Please input a number:");
scanf("%d",&num);
for(i = 0;i < 10;i++)
{
if(array == num)
{
printf("This number is in the array");
j = 1;
break;
}
}
if (j==0)
{
printf("NOt!!");
}
}
jackz007 发表于 2021-12-29 00:25
一个 if ... else ... 周期就把 num 是否在 array 内给判断了,那还要循环干什么?如果 num 不在 ar ...
感谢感谢 cjy1043 发表于 2021-12-29 12:01
#include
int main(void)
感谢感谢
页:
[1]