当前位置: 首页 > 学习知识 > 先谢谢啦——[题目描述]随机产生1-10之间的随机正整数,进行四则运算,在屏幕上产生算式:6*7=?若正确打印“Good

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

网站编辑:上海建站网 发布时间:2022-05-25  点击数:
导读:先谢谢啦——[题目描述]随机产生1-10之间的随机正整数,进行四则运算,在屏幕上产生算式:6*7=?若正确打印“Good 先谢谢啦——[题目描述]随机产生1-10之间的随机正整数,进行四则运算,在屏幕上产生算式:6*7=?若正确打印“Good!”如果错误打印“Wrong,Try Again!”但每个题只有三次重做机会,做对一题得十分,根据答题情况输出分数....

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

先谢谢啦——[题目描述]随机产生1-10之间的随机正整数,进行四则运算,在屏幕上产生算式:6*7=?若正确打印“Good!”如果错误打印“Wrong,Try Again!”但每个题只有三次重做机会,做对一题得十分,根据答题情况输出分数. 我爱甘蔗渣 1年前他留下的回答 已收到1个回答

townboy 网友

该名网友总共回答了17个问题,此问答他的回答如下:采纳率:88.2%

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

1年前他留下的回答 追问

3

我爱甘蔗渣

能不能用简单点的c
语言,我还是菜鸟,还没入门呢,看不太懂,真的非常感谢啦!!!

townboy

atof 把公式中的数转换为浮点数值
swich case 判断 是哪个运算符号进行计算
sprintf 把数值转换为字符
strcmp 比较字符串是否相同 用来比较用户输入的字符是否和计算结果字符相同
这儿我主要是用字符串处理来完成的
主要的函数 程序结构 我都跟你说了
静下心来看~ 会理解的~

  以上就是小编为大家介绍的先谢谢啦——[题目描述]随机产生1-10之间的随机正整数,进行四则运算,在屏幕上产生算式:6*7=?若正确打印“Good 的全部内容,如果大家还对相关的内容感兴趣,请持续关注上海建站网!

  标签:屏幕
内容声明:网站所展示的内容均由第三方用户投稿提供,内容的真实性、准确性和合法性均由发布用户负责。上海建站网对此不承担任何相关连带责任。上海建站网遵循相关法律法规严格审核相关关内容,如您发现页面有任何违法或侵权信息,欢迎向网站举报并提供有效线索,我们将认真核查、及时处理。感谢您的参与和支持!
浏览此文的人还看过
王者营地如何下载
王者营地如何下载

详情:操作步骤/方法1在桌面上打开我的应用商店,点击进入。2来到应......

vivo手机怎么查看手机配置信
vivo手机怎么查看手机配置信

详情:操作步骤/方法【方法1】11.手机上点击【设置】22.往下滑......

俄罗斯与中国时差?
俄罗斯与中国时差?

详情:操作步骤/方法11俄罗斯与中国时差是早5个小时。22如果俄罗......

萝卜章是什么意思?
萝卜章是什么意思?

详情:操作步骤/方法1“萝卜章”一般是指被伪造的印章,理论上,未办......