#include<time.h>
#include<stdlib.h>
#include<math.h>
int i=0,s=0,a,b,f=0,c,stdans,userans,boolean
/*i控制当前题号,s是分数,
a,b是当前参与运算的数字,
f是一道题中已经用掉的机会,
c是运算符号,stdans是标准答案,
userans是用户答案,
boolean保存该题是否已经答对
*/
int array[3]={10,7,5}//保存3个每道题可能累加上的分数(非0)
int main()
{
srand(time(0))//初始化随机数发生器
while(i<10){
a=rand()%51//产生随机数a(0<=a<=50)
b=rand()%51//产生随机数b(0<=b<=50)
if(a+b>50 || a-b<0)continue//保证题目不超出低年级水平所及范围
c=rand()%2
if(c==0){printf("%d、%d+%d=",i+1,a,b)stdans=a+b}
else {printf("%d、%d-%d=",i+1,a,b)stdans=a-b}
//决定运算符并输出题号及算式
while(f<=2){
scanf("%d",&userans)//输入答案
if(f==2)break
if(userans==stdans){//若答案正确
printf("正确!\n")
boolean=1
s+=array[f]
break//则输出信息、更改变量状态、累加分数、结束循环
}//当机会没用完时继续循环
else{
printf("错误!你还有%d次机会:",2-f)
f++
boolean=0
}//否则再来
}
if(boolean==0)printf("你没有机会了!正确答案是:%d\n",stdans)//三次没答对时
f=0//初始化f
i++//题号增加
}
printf("答题结束!你的成绩是:")
if(s>=90)printf("SMART\n")
else if(s>=80)printf("GOOD\n")
else if(s>=70)printf("OK\n")
else if(s>=60)printf("PASS\n")
else printf("TRY AGAIN\n")//输出成绩
system("pause")//可删,只是相当于cmd.exe(系统自带命令解释程序)中的pause命令
return 0
}
//我是用C++编译但刻意以C语言形式写的,可能有些小小的不兼容。如果有就找我。
中小学编程推荐:Scratch
让零基础的孩子爱上编程的启蒙课,Scratch 是MIT开发的一种通过拖动代码块来完成任务的编程语言。通过Scratch学习,培养孩子基本的编程思维,以及用逻辑思维分析问题、解决问题的能力;提升孩子的专注力及创造力;激发孩子对编程语言的兴趣;为后期学习纯代码编程语言打下基础。用Scratch, 孩子可以创建自己的项目,编写自己的故事,完成自己的艺术和音乐创作。如果是更小的小朋友,建议从Srcatch Jr开始接触编程。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)