一位数组折半法
本帖最后由 Ъγ:_小ツ雨oο 于 2013-12-14 20:00 编辑#include<stdio.h>
#define M 20
void main()
{
int a={1,1};
int b,low=0,mid,high=b,n,found;
int i;
for(i=2;i<20;i++)
{
a=a+a;
}
for(i=0;i<20;i++)
{
b=a;
printf("%6d",a);
}
printf("\n");
//上面表示20个斐波那契数,打印出来;;
printf("下面是折半法\n");
scanf("%d",&n);//n表示输入的数;;
while(low<=high)
{
mid=(low+high)/2;
if(n==b)
{
found=1;
break;
}
else if(n>b)
{
low=mid+1;
}
else
{
high=mid-1;
}
}
if(found==1)
{
printf("The index of %d is%d",n,mid);
}
else
{
printf("There is not %d",n);
}
}这个题是先把20个斐波那契数打印出来,之后在任意输入<=20中任意的一个斐波那契数,显示出来在第几个的位置并打印出来 可是,我好像数组定义冲突了,但是不知道怎么解决,大家帮忙看看怎么回事,,,(自己感觉开始的2个数好像没问题1,1 );;;; 本帖最后由 maomingkun 于 2013-12-14 20:44 编辑
修改后的代码如下:
#include<stdio.h>
#define M 20
void main()
{
int a={1,1};
int b,low=0,mid,high=M-1,n,found;
int i;
for(i=2;i<20;i++)
{
a=a+a;
}
for(i=0;i<20;i++)
{
b=a;
printf("%6d",b);
}
printf("\n");
//上面表示20个斐波那契数,打印出来;;
printf("下面是折半法\n");
scanf("%d",&n);//n表示输入的数;;
while(low<=high)
{
mid=(low+high)/2;
if(n==b)
{
found=1;
break;
}
else if(n>b)
{
low=mid+1;
}
else
{
high=mid-1;
}
}
if(found==1)
{
printf("The index of %d is %d\n",n,mid);
}
else
{
printf("There is not %d\n",n);
}
}
本帖最后由 maomingkun 于 2013-12-14 20:45 编辑
哥们儿,我给你说一下你错哪里了!
#include<stdio.h>
#define M 20
void main()
{
int a={1,1};
int b,low=0,mid,high=b,n,found;//这里,high=b应改为high=M-1,high是个数组下标
int i;
for(i=2;i<20;i++)
{
a=a+a;
}
for(i=0;i<20;i++)
{
b=a; //这里,你要把数组a的个元素赋给数组b,应该为b【i】=a【i】
printf("%6d",a);//这里a【i】可以改为b【i】,不改也没关系
}
printf("\n");
//上面表示20个斐波那契数,打印出来;;
printf("下面是折半法\n");
scanf("%d",&n);//n表示输入的数;;
while(low<=high)
{
mid=(low+high)/2;
if(n==b)
{
found=1;
break;
}
else if(n>b)
{
low=mid+1;
}
else
{
high=mid-1;
}
}
if(found==1)
{
printf("The index of %d is%d",n,mid);
}
else
{
printf("There is not %d",n);
}
}
这下应该没错了 我插!出毛病了!b和a打不出来了 maomingkun 发表于 2013-12-14 20:43 static/image/common/back.gif
我插!出毛病了!b和a打不出来了
{:5_94:} 下次 调试好在回答我哈, 我看到有人 回复了 就不假思索的把我的代码改的和你说的一样,之后-没有之后了 我说你错误的地方都有错误!
我的代码其他地方都对,就是打印数组的地方,改为下边
for(i=2;i<20;i++)
{
a=a+a;
}
for(i=0;i<20;i++)
{
b=a;
printf("%6d",b);
}
printf("\n");
Ъγ:_小ツ雨oο 发表于 2013-12-14 21:07 static/image/common/back.gif
下次 调试好在回答我哈, 我看到有人 回复了 就不假思索的把我的代码改的和你说的一样,之后- ...
刚才我的打不出了,把我的代码贴上就行! maomingkun 发表于 2013-12-14 21:24 static/image/common/back.gif
刚才我的打不出了,把我的代码贴上就行!
我插!为毛打不出中括号呢? 支持一下鱼C 这里输入你的回复内容 顶一个呀!!
页:
[1]