永发信息网

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

答案:1  悬赏:60  手机版
解决时间 2021-11-20 23:51
设计一个程序,每次答题要记录做错的题目,下次做题可选择上次做错的题;用c或c++
最佳答案
#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;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我想在电脑加一块硬盘,怎么对新硬盘分区
农村信用合作耻社(民主路分社)地址在什么地方
《中小学管理》的文章不是中国知网的论文刊物
要使23.5÷()的商是两位小数
面包木薯是先泡先煮
桃江七中和六中哪个学校好点
辽河大街邮政储蓄ATM地址在哪,我要去那里办
武汉长江大桥上能步行通过吗?
从洛阳坐z41去青海到哪坐车
唯一造型地址在什么地方,想过去办事,
AA级担保公司是什么意思
土地干用氟乐灵效果咋样
请看过京极夏彦的《魍魉之匣》和《络新妇之理
看图猜成语 2468是什么成语
2017年10月2号美国放假吗
推荐资讯
在S、Ⅴ不变的情形下,稳定平衡态的U最小,这
索尼PSP3000屏幕裂了 要拿去换屏 换个一般的
刷新从前,定义人生。现实终有后悔事,人生莫
品德除了礼貌之外还有什么
交口县回龙乡回龙幼儿园地址在哪,我要去那里
尚舞工作室(保定定兴县)地址在什么地方,想过
怎样教02岁的宝宝学说话?怎样辅助宝宝讲话最
我是新手,请教在瑞卡租车,需要注意哪些事情
阳城受益锁社农家乐地址有知道的么?有点事想
重庆杨家坪五星级酒店在哪?
形容行业很专业的句子
来力台球厅地址在什么地方,想过去办事,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?