#include<stdio.h> #include <stdlib.h> #include <time.h> int time2(); main() { int a,b,c,n,u,i,e=0; int sum2=1; int sum=0; float sum3=0; float answer2; int resultTrue=0; int answer; int time=0; char op,op2; do//产生随机数 { a=rand()%100+1; b=rand()%100+1; c=rand()%100+1; n=rand()%4+1; u=rand()%4+1; e=rand()%10+1; switch(n) { case 1://含有一个运算符 { switch(u%4)//产生运算符 { case 0: { op='+'; break; } case 1: { op='-'; break; } case 2: { op='*'; break; } case 3: { op='/'; break; } } printf("%d%c%d= ",a,op,b);//打印 switch(op)//通过运算符计算答案 { case '+': { resultTrue=a+b; break; } case '-': { resultTrue=a-b; break; } case '*': { resultTrue=a*b; break; } case '/': { sum3=(float)a/b; printf("请输入正确答案(时间为两分钟):"); scanf("%d",&answer2); if(sum3==answer2) { printf("答案正确 "); } else { printf("答案错误 "); printf("正确答案为%f ",sum3); } break; } } while(time<121) { printf("请输入正确答案(时间为两分钟):"); scanf("%d",&answer); time=time2(); if(time==120) { printf("时间到,无法答题 "); time=0; break; } if(time<120) { if(answer==resultTrue) { printf("答案正确 "); printf("答题时间为%d ",time); time=0; break; } else { printf("答案错误 "); printf("答案为%d ",resultTrue); break; } } } } case 2://产生两个运算符 { switch(u%4)//第一个运算符产生 { case 0: { op='+'; break; } case 1: { op='-'; break; } case 2: { op='*'; break; } case 3: { op='/'; break; } } switch(u%4)//第二运算符产生 { case 0: { op2='+'; break; } case 1: { op2='-'; break; } case 2: { op2='*'; break; } case 3: { op2='/'; break; } } printf("%d%c%d%c%d= ",a,op,b,op,c);//打印 switch(op)//计算答案先通过第一个运算符计算 { case '+': { sum=a+b; break; } case '-': { sum=a-b; break; } case '*': { sum=a*b; break; } case '/': { sum3=(float)a/b; break; } } switch(op2)//然后再根据第二运算符计算 { case '+': { sum=sum+c; break; } case '-': { sum=sum-c; break; } case '*': { sum=sum*c; break; } case '/': { sum3=(float)sum3/c; printf("请输入正确答案(时间为两分钟):"); scanf("%d",&answer2); time=time2(); if(sum3==answer2) { printf("答案正确 "); } else { printf("答案错误 "); printf("正确答案为%f ",sum3); } break; } } while(time<123)//时间设置 { printf("请输入正确答案(时间为两分钟):"); scanf("%d",&answer); if(time==120) { printf("时间到,无法答题 "); time=0; break; } if(time<120) { if(answer==sum) { printf("答案正确 "); printf("你得答题时间为%d ",time); time=0; break; } else { printf("答案错误 "); printf("答案为%d ",sum); break; } } } } case 3: { printf("请输入%d!=",e); scanf("%d",&answer); time=time2(); for(i=1;i<=e;i++) { sum2=sum2*i; } while(time<121) { if(time==120) { time=0; printf("已到时间 "); break; } if(time<120) { if(answer==sum2) { printf("答案正确 "); printf("用时为%d ",time); sum2=1; break; } else { printf("答案错误 "); printf("答案为%d ",sum2); sum2=1; break; } } } } } }while(1); } int time2() { int time=0; int i; int n; printf("0为退出 "); for(i=0;i<121;i++) { scanf("%d",&n); if(n==0){ break; } time++; } return time; }
此程序我们已经成功的完成老师的提出的基本目标,还有扩展中整数的阶乘,负数的显示和分数的显示,但是始终不知如何实现时间的显示,我们尝试运用函数的办法来显示时间,但是失败了。本次程序我负责的两个运算符的运算,结对的负责一个运算符的运算。我们都是通过随机数来选择运算符,然后再通过运算符的判断来进行运算。
结对博客:www.cnblogs.com/201306114356cx/,56陈曦
本次总结,此次程序让我们懂得了合作的重要性,合作可以减少一个人的负担并且可以使工作效率加快,而且还能使别人学习到他们不会的东西,让我们彼此成长。