永发信息网

设计一个程序,每次答题要记录做错的题目,下次做题可选择上次做错的题;用c或c++

答案:1  悬赏:60  手机版
解决时间 2021-11-20 23:51
  • 提问者网友:佞臣
  • 2021-11-20 04:13
设计一个程序,每次答题要记录做错的题目,下次做题可选择上次做错的题;用c或c++
最佳答案
  • 五星知识达人网友:有你哪都是故乡
  • 2021-11-20 04:22
#include
#include
#include
#define N 1000//数据范围
struct TEMP{
int num1;
char op;
int num2;
TEMP(int n1,char o,int n2){
num1=n1;
op = o;
num2 = n2;
}
};

int f(int n){
return rand()%n;
}
bool judge(int num1,char op,int num2,int ans){
switch(op){
case '*':return ans==num1*num2;
case '/':return ans==num1/num2;
case '+':return ans==num1+num2;
case '-':return ans==num1-num2;
}
}
TEMP *wans[100];
int size=0;
const char ops[]={'+','-','*','/'};
void show(){
srand((unsigned int )time(NULL));
int ans;
int t1=f(N);
char op = ops[f(4)];
int t2=f(N);
if(op=='-')
t2 = f(t1);
printf("%d %c %d=?
",t1,op,t2);
loop: scanf("%d",&ans);
if(judge(t1,op,t2,ans)){
printf("you are right!
");
}else{
printf("worng ans!!!!
");
printf("是否重写上次答案(1/0):");
int y;
scanf("%d",&y);
if(y){
goto loop;
}else{
wans[size++] = new TEMP(t1,op,t2);
}
}
}

int main(){

int T=10;
int ans;
while(T--){
show();
}
printf("十道题已经做完,是否察看错题(1/0):");
scanf("%d",&ans);
if(ans){
for(int i=0;i printf("%d %c %d=?
",wans[i]->num1,wans[i]->op,wans[i]->num2);
}
}else{
printf("Test over!");
}
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯