这个程序要求我:编写一个与用户进行简单数字猜测的程序。用户想到一个数字,然后回答计算机提出的一系列问题,直到它正确猜到 号。
我的问题是编译器说:'arr'未声明(首次在此函数中使用)
到目前为止,这是我的代码:
#include <stdio.h>
#include "strlib.h"
#include "simpio.h"
#define size 200
int binSearch (int num);
void getArray (int arr[]);
main()
{
printf("Think of a number in the range of 1-200 and I'll guess it.\n");
int arr[size];
getArray(arr);
binSearch(arr);
getchar();
}
void getArray (int numbers[])
{
int number;
for(number=1;number>=200;number++)
{
arr[number]=number;
}
}
int binSearch(int num)
{
int low, high, mid;
string strReply;
low=0;
high=size-1;
while(low<=high);
{
mid=low+high/2;
printf("\nIs the number %d ?\t", mid);
strReply= GetLine();
if(StringEqual(strReply, "no"))
{
printf("Is the number less than %d ?\t", mid);
if(StringEqual(strReply, "no"))
{
high=mid-1;
}
else if(StringEqual(strReply, "yes"))
{
low=mid+1;
}
}
else if(StringEqual(strReply, "yes"))
{
return(mid);
}
else
{
return(-1);
}
}
谢谢:)
答案 0 :(得分:6)
void getArray (int numbers[])
{
int number;
for(number=1;number>=200;number++)
{
arr[number]=number; // this should be numbers[number]
}
}
您将数组传递给函数,但是将数组用作全局数据。
答案 1 :(得分:2)
@Adrian Jandl说的话。
另请注意您的循环错误两次:
for(number=0; number<200; number++) ...
答案 2 :(得分:1)
未在getArray函数中定义或声明arr。并且arr也不是全局变量。您可以将arr int main()函数移动到全局区域。