文章出處
文章列表
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> main() { int i,j,k,e,d,d1,e1,l; int a,b,c; int q=0,w=0,q1=0,w1=0; float sum; srand((int)time(0)); do{ a=rand()%100+1; b=rand()%100+1; k=rand()%4+1; c=max(a,b); a=min(a,b); switch(k){ case 1:printf("%d*%d=",c,a);d=c*a; break; case 2: { printf("%d/%d=",a,c); (float)d=(float)a/(float)c; for(i=1;i<=c;i++) for(j=1;j<=a;j++) { (float)l=(float)j/(float)i; if(l==d) { c=i; a=j; break; } } break; } case 3:printf("%d+%d=",c,a);d=c+a; break; case 4:printf("%d-%d=",c,a);d=c-a; break; } if(k==2) { scanf("%d/%d",&e,&e1); (float)d1=(float)e/(float)e1; if(e==a&&e1==c) { printf("回答正確!\n\n"); q++; } else { printf("回答錯誤!\n\n"); w++; } } if(k!=2) { scanf("%d",&e); if(e==d) { printf("回答正確!\n\n"); q1++; } else { printf("回答錯誤!\n\n"); w1++; } } }while(e!=-1); sum=((float)(q+q1)/(float)(q+q1+w+w1-1))*100; printf("此次答題正確率為 %.2f%%\n",sum); }
關于小數的與整數的沒有什么大的出入,基本就是重復一遍,暫時沒有想到更好的辦法
這次的程序的時間最主要是消耗在產生不同在運行結果,導致程序在效率不是很高。
最后是在網上找到了關于隨時間變化的類,解決了程序運行結果單一的問題,大大提高了程序的實用性。
對于真分數只做出了分數的最簡約分。
文章列表
全站熱搜