编译运行问题
#include<stdio.h>int main()
{
char b={"abcdefg"};
char a;
scanf("%c",&a);
int mid,lower=0,higher=7;
while(lower<=higher)
{
mid=(lower+higher)/2;
if(b==a)
{
printf("%d",mid+1);
break;
}
else if(a>b)
{
lower=mid+1;
}
else
{
higher=mid-1;
}
}
if(lower>higher)
printf("**");
return 0;
}
请问我这个哪里错了,为什么运行不起来
%5Burl=https://imgse.com/i/vXw34K%5Dhttps://s1.ax1x.com/2022/09/12/vXw34K.jpg 可以运行啊,为什么不能运行?
你这个功能就是输入a到g之间的数就会返回这个数在数组的哪个位置嘛
如果数组里没有这个数就会返回‘**’。 你这个报错也好奇怪,这些变量不是已经声明了吗 用的什么编译器?我用的DEV-C++ 本帖最后由 临时号 于 2022-9-12 16:52 编辑
把mid,lower,higher分开定义试试 你这个代码总共 28 行,可是编译器给出的问题语句行号却是 76 ~ 91 你能确定编译的不是另外一个代码文件? 跟源代码文件的编码有关,用 VS 编译 utf-8 编码的源代码文件可能会出现这样的问题,要么把源代码文件重新以 gbk 编码保存,要么编译的时候加参数:/source-charset:utf-8 /excution-charset:gbk,要么换个编译器。 要不你把
int mid,lower=0,higher=7;
这一句放在开头
页:
[1]