第2题程序改错,麻烦给输入的过程和结果的截图~谢谢,/**********FOUND**********/下面表示有错误
功能:有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数在数组中的位置(下标加1);如果该数不在数组中,则输出“notfind!”。/**********F...
功能:有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数在数组中的位置(下标加1);如果该数不在数组中,则输出“not find!”。
/**********FOUND**********/
#define <stdio.h>
#include <conio.h>
main()
{int mid,low=0,high=14,x,i;
int num[15]={2,6,8,9,12,15,18,20,23,26,29,32,36,38,40};
clrscr();
printf("printf 15 numbers:\n");
for(i=0;i<15;i++)
/**********FOUND**********/
printf("%3d",num+i);
printf("\ninput x:");
scanf("%d",&x);
/**********FOUND**********/
while(low<=14)
{ mid=(low+high)/2;
if(x==*(num+mid))
/**********FOUND**********/
{ printf("%d",mid);
exit(1);
}
if(x>*(num+mid)) low=mid+1;
if(x<*(num+mid)) high=mid-1;
}
printf("not find!\n");
} 展开
/**********FOUND**********/
#define <stdio.h>
#include <conio.h>
main()
{int mid,low=0,high=14,x,i;
int num[15]={2,6,8,9,12,15,18,20,23,26,29,32,36,38,40};
clrscr();
printf("printf 15 numbers:\n");
for(i=0;i<15;i++)
/**********FOUND**********/
printf("%3d",num+i);
printf("\ninput x:");
scanf("%d",&x);
/**********FOUND**********/
while(low<=14)
{ mid=(low+high)/2;
if(x==*(num+mid))
/**********FOUND**********/
{ printf("%d",mid);
exit(1);
}
if(x>*(num+mid)) low=mid+1;
if(x<*(num+mid)) high=mid-1;
}
printf("not find!\n");
} 展开
1个回答
展开全部
/**********FOUND**********/
#include<stdio.h>/////////////////////////////
#include <conio.h>
main()
{int mid,low=0,high=14,x,i;
int num[15]={2,6,8,9,12,15,18,20,23,26,29,32,36,38,40};
clrscr();
printf("printf 15 numbers:\n");
for(i=0;i<15;i++)
/**********FOUND**********/
printf("%3d",*(num+i));////////////////////////////////////
printf("\ninput x:");
scanf("%d",&x);
/**********FOUND**********/
while(low<=high)///////////////////////////////////////
{ mid=(low+high)/2;
if(x==*(num+mid))
/**********FOUND**********/
{ printf("%d",mid+1);///////////////////////////////////////
exit(1);
}
if(x>*(num+mid)) low=mid+1;
if(x<*(num+mid)) high=mid-1;
}
printf("not find!\n");
}
#include<stdio.h>/////////////////////////////
#include <conio.h>
main()
{int mid,low=0,high=14,x,i;
int num[15]={2,6,8,9,12,15,18,20,23,26,29,32,36,38,40};
clrscr();
printf("printf 15 numbers:\n");
for(i=0;i<15;i++)
/**********FOUND**********/
printf("%3d",*(num+i));////////////////////////////////////
printf("\ninput x:");
scanf("%d",&x);
/**********FOUND**********/
while(low<=high)///////////////////////////////////////
{ mid=(low+high)/2;
if(x==*(num+mid))
/**********FOUND**********/
{ printf("%d",mid+1);///////////////////////////////////////
exit(1);
}
if(x>*(num+mid)) low=mid+1;
if(x<*(num+mid)) high=mid-1;
}
printf("not find!\n");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询