先谢谢啦——[题目描述]随机产生1-10之间的随机正整数,进行四则运算,在屏幕上产生算式:6*7=?若正确打印“Good
1个回答

#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;

}