scanf
#include<stdio.h>#define M 10
int main()
{
static int a={-12,0,6,16,23,56,80,100,110,115};
int n,low,mid,high,found;
low=0;
high=M-1;
found=0;
printf("Input a number to be searched:");
do
{
scanf("%d",&n);
}while(n<a || n>a);
while (low <= high)
{
mid=(low+high)/2;
if(n==a)
{
found=1;
break;
}
else if(n>a)
{
low=mid+1;
}
else
{
high=mid-1;
}
}
if(found==1)
{
printf("The index of %d is %d",n,mid);
}
else
{
printf("There is no %d",n);
}
return 0;
}
我这个程序并没有像小甲鱼视屏教程里讲的那样在scanf后面加getchar()也能运行,而且输入字母居然也行。求大佬解惑 楼主。麻烦发一下题目吧,这样容易解决问题{:10_297:} 小甲鱼的铁粉 发表于 2020-6-25 21:27
楼主。麻烦发一下题目吧,这样容易解决问题
就是小甲鱼的这个视频,二分法找数的 小甲鱼的铁粉 发表于 2020-6-25 21:27
楼主。麻烦发一下题目吧,这样容易解决问题
我比较无奈的是我输入字母居然也行,然后就是小甲鱼下一个视频里讲的scanf的问题我运行的时候完全没有{:10_269:}{:10_269:}{:10_269:} 小甲鱼的铁粉 发表于 2020-6-25 21:27
楼主。麻烦发一下题目吧,这样容易解决问题
https://www.bilibili.com/video/BV1x7411M74h?p=30 小甲鱼的铁粉 发表于 2020-6-25 21:27
楼主。麻烦发一下题目吧,这样容易解决问题
大佬,就是那个连接 的视频的29分钟以后的我是一脸懵逼,能给指点一下吗{:10_254:} 君子好逑 发表于 2020-6-26 13:02
大佬,就是那个连接 的视频的29分钟以后的我是一脸懵逼,能给指点一下吗
鱼哥的视频好像是在2008年录的,现在的编译器比如说Devc++,你的输入指令是scanf("%d",&n);那么你输入的如果是字符的话n是不会被赋值的,n的默认值是0,在devc++中%d只能接受整形数据,其他的都不接收。如果在定义n时给出一个int n = 1;那么输入a的话运行结果就会是There is no 1,因为%d不接受字符a,所以它还是我们定义的默认值1,楼主你的程序是对的,这一点不用深究的。 小甲鱼的铁粉 发表于 2020-6-26 19:15
鱼哥的视频好像是在2008年录的,现在的编译器比如说Devc++,你的输入指令是scanf("%d",&n);那么你输入的 ...
谢谢大佬{:10_254:} 君子好逑 发表于 2020-6-26 21:36
谢谢大佬
不客气{:10_297:}麻烦给个最佳呗 小甲鱼的铁粉 发表于 2020-6-26 22:16
不客气麻烦给个最佳呗
大佬,最佳有啥用??? 君子好逑 发表于 2020-6-26 23:43
大佬,最佳有啥用???
有鱼币、荣誉、技术值奖励的,可以升级{:10_256:} 小甲鱼的铁粉 发表于 2020-6-27 07:37
有鱼币、荣誉、技术值奖励的,可以升级
懂了{:10_256:}
页:
[1]