#include
#include
#include
#include
char g_cSign[] = "+-*/";
//随机生成x到y的随机数
int GetSrand(int x,int y)
{
x09srand(GetTickCount());x09x09//毫秒级 获得计算机开机时间
x09return rand() % (y - x + 1) + x;
}
//随机选择符号
char GetSign()
{
x09return GetSrand(0,3);
}
//随机生成2个数 存入数组
void GetNumber(char * pNumber)
{
x09int nNumber = GetSrand(10,99);
x09*pNumber = nNumber / 10;
x09*(pNumber + 1) = nNumber % 10;
}
void CreateEquation(char * pEqua)
{
x09char cTwoNumer[2];
x09GetNumber(cTwoNumer);
x09sprintf(pEqua,"%d%c%d=?n",cTwoNumer[0],g_cSign[GetSign()],cTwoNumer[1]);
}
BOOL Answer(char * pEqua)
{
x09char cAnswer[30];
x09float nAnswer;
x09float fNum1=atof(pEqua);
x09float fNum2=atof((pEqua + 2));
x09double dResult;
x09char cResult[30];
x09switch (*(pEqua + 1))
x09{
x09case'+':dResult = fNum1 + fNum2;
x09x09break;
x09case'-':dResult = fNum1 - fNum2;
x09x09break;
x09case'*':dResult = fNum1 * fNum2;
x09x09break;
x09case'/':dResult = fNum1 / fNum2;
x09x09break;
x09}
x09if (*(pEqua + 1) == '/')
x09{
x09x09printf("请保留2位小数!n");
x09x09sprintf(cResult,"%.2lf",dResult);
x09}
x09else
x09sprintf(cResult,"%.0lf",dResult);
x09for (int i = 0; i < 3; i++)
x09{
x09x09printf("result:");
x09x09scanf("%s",cAnswer);
x09x09if (strcmp(cAnswer,cResult) != 0)
x09x09{
x09x09x09printf("Wrong,Try Again!n");
x09x09x09
x09x09x09continue;
x09x09}
x09x09return TRUE;
x09}
x09printf("本题打错!n");
x09return FALSE;
}
int main(void)
{
x09char cEque[50];
x09int nGoal = 0;
x09for (int i = 0; i < 10; i++)
x09{
x09x09printf("题目%d:n",i+1);
x09x09CreateEquation(cEque);
x09x09printf(cEque);
x09x09if (Answer(cEque) == FALSE)
x09x09x09continue;
x09x09printf("Good!n");
x09x09nGoal += 10;
x09}
x09printf("总分:%dn",nGoal);
x09system("pause");
x09return 0;
}