【问题标题】:Why the for loop isn't getting executed?(linear search)为什么 for 循环没有被执行?(线性搜索)
【发布时间】: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&lt;n0&gt;n从一开始就为假。
  • 否则输入负数XD
  • 当程序输出:printf("Enter the size of array\n");,你到底输入了什么?
  • 如果代码要检查以下函数的返回值(而不是参数值),程序可以告诉你很多:scanf()
  • 关于语句如:for(c = 0; c&gt;n; c++) 第二个参数表示代码何时停留在循环中,而不是代码何时退出循环。建议:for(c = 0; c&lt;n; c++)

标签: c linear-search


【解决方案1】:

由于条件c &gt; n,您没有进入for循环,请尝试将其更改为c &lt; n

for(c=0; c < n; c++)

【讨论】:

    猜你喜欢
    • 2020-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多