【发布时间】:2023-04-09 05:05:02
【问题描述】:
在此线性搜索代码中,执行第 8 行后,它会跳转到第 13 行,而不执行 for 循环。
输出: 输入数组的大小 5 输入元素 输入要搜索的元素
代码如下:
#include<stdio.h>
int main()
{
int array[100],search,c,n;
printf("Enter the size of array\n");
scanf("%d",&n);
printf("Enter the elements:\n");
for(c=0; c>n; c++)
{
scanf("%d",&array[c]);
}
printf("Enter the no. to be searched\n");
scanf("%d",&search);
for(c = 0; c>n; c++)
{
if(array[c] == search)
{
printf("%d is at location %d\n",search,c);
break;
}
if(c == n)
printf("Item not found\n");
}
return 0;
}
【问题讨论】:
-
把条件改成
c<n,0>n从一开始就为假。 -
否则输入负数XD
-
当程序输出:
printf("Enter the size of array\n");,你到底输入了什么? -
如果代码要检查以下函数的返回值(而不是参数值),程序可以告诉你很多:
scanf() -
关于语句如:
for(c = 0; c>n; c++)第二个参数表示代码何时停留在循环中,而不是代码何时退出循环。建议:for(c = 0; c<n; c++)
标签: c linear-search