四则运算升级版
2015-04-01 16:32
197 查看
#include <stdlib.h> #include <stdio.h> #include<time.h> int main(void) { int n=0,i,d=0,q,w,k,l,c=0,e,r,j; float cout=0; char *a[6]={"+","-","*","/","(",")"}; char b; printf("1.随机生成\n2.退出\n"); do{ do{ scanf("%d",&j);getchar(); if((j>2)||(j<1)) printf("输入错误,请重新输入:"); }while((j>2)||(j<1)); switch(j){ case 1: printf("开始生成\n"); printf("产生题数:"); do{ scanf("%d",&n);getchar(); if(n==0) printf("输入错误,请重新输入:"); }while(n==0); printf("输入控制数字范围:"); do{ scanf("%d",&c);getchar(); if(c==0) printf("输入错误,请重新输入:"); }while(c==0); c++; cout=0.0; srand(time(NULL)); for(d=0;d<n;d++){ i=rand() % 8; q=rand() % c; w=rand() % c; switch(i) { case 1: printf("%d+%d=",q,w); scanf("%d",&k); if(k==(q+w)){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; case 2: printf("%d-%d=\n",q,w); scanf("%d",&k); if(k==(q-w)){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; case 3: printf("%d*%d=\n",q,w); scanf("%d",&k); if(k==(q*w)){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; case 4: do{ if(w==0) w=rand() % c;}while(w==0); printf("%d/%d=\n",q,w); printf("1.答案为整数\n2.答案为分数\n"); scanf("%d",&k); switch(k){ case 1: scanf("%d",&k); if(k==(q/w)){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; case 2: scanf("%d",&k); scanf("%c",&b); getchar(); scanf("%d",&l); if((k/l)==(q/w)){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; default: printf("默认整数\n"); scanf("%d",&k); if(k==(q/w)){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; } break; case 5: e=rand() % c; r=rand() % c; do{ if(w==0||r==0) w=rand() % c; r=rand() % c; }while(w==0||r==0); printf("(%d/%d)+(%d/%d)=\n",q,w,e,r); printf("1.答案为整数\n2.答案为分数\n"); scanf("%d",&k); switch(k){ case 1: scanf("%d",&k); if(k==((q/w)+(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; case 2: scanf("%d",&k); scanf("%c",&b); getchar(); scanf("%d",&l); if((k/l)==((q/w)+(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; default: printf("默认整数\n"); scanf("%d",&k); if(k==((q/w)+(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; } break; case 6: e=rand() % c; r=rand() % c; do{ if(w==0||r==0) w=rand() % c; r=rand() % c; }while(w==0||r==0); printf("(%d/%d)-(%d/%d)=\n",q,w,e,r); printf("1.答案为整数\n2.答案为分数\n"); scanf("%d",&k); switch(k){ case 1: scanf("%d",&k); if(k==((q/w)-(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; case 2: scanf("%d",&k); scanf("%c",&b); getchar(); scanf("%d",&l); if((k/l)==((q/w)-(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; default: printf("默认整数\n"); scanf("%d",&k); if(k==((q/w)-(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; } break; case 7: e=rand() % c; r=rand() % c; do{ if(w==0||r==0) w=rand() % c; r=rand() % c; }while(w==0||r==0); printf("(%d/%d)*(%d/%d)=\n",q,w,e,r); printf("1.答案为整数\n2.答案为分数\n"); scanf("%d",&k); switch(k){ case 1: scanf("%d",&k); if(k==((q/w)*(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; case 2: scanf("%d",&k); scanf("%c",&b); getchar(); scanf("%d",&l); if((k/l)==((q/w)*(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; default: printf("默认整数\n"); scanf("%d",&k); if(k==((q/w)*(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; } break; case 0: e=rand() % c; r=rand() % c; do{ if(w==0||r==0) w=rand() % c; r=rand() % c; }while(w==0||r==0); printf("(%d/%d)/(%d/%d)=\n",q,w,e,r); printf("1.答案为整数\n2.答案为分数\n"); scanf("%d",&k); switch(k){ case 1: scanf("%d",&k); if(k==((q/w)/(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; case 2: scanf("%d",&k); scanf("%c",&b); getchar(); scanf("%d",&l); if((k/l)==((q/w)/(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; default: printf("默认整数\n"); scanf("%d",&k); if(k==((q/w)/(e/r))){ printf("恭喜回答正确! 得%d分!\n",100/n); cout+=(100/n); } else printf("回答错误,继续加油!\n"); break; } break; } } printf("总成绩%0.1f!\n",cout); j=-1; printf("\n1.随机生成\n2.退出\n"); break; case 2: exit(0); break; default: printf("输入错误!请重新输入\n"); break; }}while(j==-1); return 0; }
相关文章推荐
- 四则运算生成器升级版2.0
- 软件工程课堂作业(二)——升级版随机产生四则运算题目设计思想
- 四则运算生成器升级版1.0设计思想
- 四则运算生成器升级版1.0代码规范与测试程序
- 四则运算-升级版--1
- BICEP单元测试——随机四则运算升级版
- 个人项目之 “二柱子四则运算”升级版
- 四则运算升级版
- 实验二--四则运算-升级版--2
- 编程 switch四则运算 五个产品 少儿分班
- 利用ANTLR4实现一个简单的四则运算计算器
- 小学生四则运算阶段性总结
- 栈的应用,实现简单的不带括号的四则运算
- java实现四则运算,难点主要在理解加减乘除优先级以及使用递归
- java小练习(实现分数的四则运算)
- 四则运算计算器day1.1
- NOIP 2005 等价表达式 四则运算
- 简单计算器,四则运算,小括号,实数,剔除空格,封装calculator类
- 软件工程作业 四则运算(一)
- 程序输出小学四则运算表达式,支持真分数四则运算