一个用VC++编的猜数字的程序的编译问题
照着别人给的例子打入的,可是编译不过去
/*猜数字出题部分,给出AB值*/
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
void getrandom(int a[],int n)
{
int i=0,j=0,bool=1;
while(i<n)
{
bool=1;
randomize();/*保证每次的结果不同*/
a[i]=random(10);
for(j=0;j<i;j++)
if(a[j]==a[i])
{
bool=0;
break;
}
if(!bool)
i--;
i++;
}
/*print it*/
/*
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
*/
}
int getAB(int s[],int d[],int n)
{
int i,j;
int A=0,B=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(s[i]==d[j])
{
if(i==j) A++;
else B++;
}
}
return A*10+B;
}
main()
{
int s[4],guess[4];
int i,j,AB;
again: printf("wait......\n\n");
getrandom(s,4);
for(i=0;i<8;i++)
{
printf("Please input 4 numbers (a b c d):\n\t\t");
for(j=0;j<4;j++)
{
scanf("%d",&guess[j]);
}
AB=getAB(s,guess,4);
printf("\t\t%d A %d B\n",AB/10,AB%10);
if(AB==40)
{
printf("\n\tyou win!!!\n");
break;
}
}
if(AB!=40)
printf("\nYou lost,the numbers is:%d %d %d %d\n",s[0],s[1],s[2],s[3]);
printf("Guess again?(Y/N):");
if(getch()=='y'||'Y')
goto again;
return 0;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最后一行的return 0是我后加上去的。编译结果提示:
--------------------Configuration: 猜数字 - Win32 Debug--------------------
Compiling...
猜数字.cpp
e:\猜数字\猜数字.cpp(11) : error C2065: 'randomize' : undeclared identifier
e:\猜数字\猜数字.cpp(12) : error C2065: 'random' : undeclared identifier
e:\猜数字\猜数字.cpp(75) : error C2065: 'getch' : undeclared identifier
Error executing cl.exe.
猜数字.obj - 3 error(s), 0 warning(s)
到底错在哪了呢?