既然上面是空格隔开的,下面倒数第三行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")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)