如何用C语言顺序查找程序?

如何用C语言顺序查找程序?,第1张

#include\x0d\x0avoid main()\x0d\x0a{\x0d\x0a int a[10]={1,2,3,4,5,6,7,8,9,10}\x0d\x0a int i,x,y\x0d\x0a printf("输入你要查找的数:\n")\x0d\x0a scanf("%d",&x)\x0d\x0a y=0 //标记是否已找到,y=1表是找到了,y=0表示没握拆找到\x0d\x0a for(i=0i 回答于 2022-11-16

在这个程序中,输入的10个数字清模,是以空格 隔开的。如果想用逗号圆正塌隔开,会比较麻烦。

既然上面是空格隔开的,下面倒数第三行printf("%d in %d",key,i)key和i用空格隔开不用逗号是不行的。这是程序语句规定的,各输出项之间必须要用逗号分隔橘圆。这个与上面所说的运行时输入各数据用什么分隔(它是可以指定的)是两码事。

#include <stdio.h>

#define LENGTH 20

void SequenceSearch(int *fp,int Length)

void Search(int *fp,int length)

void Sort(int *fp,int length)

void main()

{

 int count

 int arr[LENGTH]

 printf("请输入你的数据的个数:\n")

 scanf("%d",&count)

 printf("请输入%d个数据\n",count)

 for(int i=0i<counti++)

 {

  scanf("%d",&arr[i])

 }

 

 int choise=0

 do 

 { 

  printf("1.使用顺序查询.\n2.使用二分查找法查找.\n3.退出\n")

  scanf("%d",&choise)

  if(choise==1)

   SequenceSearch(arr,count)

  else if(choise==2)

   Search(arr,count)

  else if(choise==3)

   break 

 } while (choise==1||choise==2||choise==3)

}

void SequenceSearch(int *fp,int Length)

{

 int data

 printf("开始使用顺序查询.\n请输入你想要查找的数据.\n")

 scanf("%d",&data)

 for(int i=0i<Lengthi++)

  if(fp[i]==data)

  {

   printf("经过%d次查找,查找到数据%d.\n",i+1,data)

   return 

  }

 

 printf("经过%d次查找,未能查找到数据%d.\n",i,data)

}

void Search(int *fp,int length)

{

 int data

 printf("开始使用顺序查询.\n请输入你想要查找的数据.\n")

 scanf("%d",&data)

 printf("由于二分查找法要求数据是有序的,现在开始为数组排序.\n")

 Sort(fp,length)

 printf("数芹租组现在已经是从小到大排列,下信让面将开始查找.\n")

 int bottom,top,middle

 bottom=0

 top=length

 

 int i=0

 while (bottom<=top)

 {

  middle=(bottom+top)/2

  i++

  if(fp[middle]<data)

  {

   bottom=middle+1

  }

  else if(fp[middle]>data)

  {

   top=middle-1

 嫌坦兆 }

  else

  {

   printf("经过%d次查找,查找到数据%d.\n",i,data)

   return

  }

 }

 printf("经过%d次查找,未能查找到数据%d.\n",i,data)

}

void Sort(int *fp,int length)

{

 printf("现在开始为数组排序,排列结果将是从小到大.\n")

 

 int temp

 for(int i=0i<lengthi++)

  for(int j=0j<length-i-1j++)

   if(fp[j]>fp[j+1])

   {

    temp=fp[j]

    fp[j]=fp[j+1]

    fp[j+1]=temp

   }

   

   printf("排序完成!\n下面输出排序后的数组:\n")

   for(int k=0k<lengthk++)

   {

    printf("%5d",fp[k])

   }

   printf("\n")

   

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12277983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存