作业2

用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int yunsuan(int M,int NUM)
{
int m=1,n=0,a,b,daan;
while(1)
{
srand(time(0));
a=rand()%M;
b=rand()%M;
switch(1+rand()%2)
{
case 1: //加
{
printf("<%d>",m);
printf("%4d+%4d=",a,b);
scanf("%d",&daan);
if(daan==(a+b))
n++;
else
printf("Fault!\n");
m++;
break;
}
default: //减
{
if(a>=b)
{
printf("<%d>",m);
printf("%4d-%4d=",a,b);
scanf("%d",&daan);
if(daan==(a-b))
n++;
else
printf("Fault!\n");
m++;
break;
}
else
{
printf("<%d>",m);
printf("%4d-%4d=",b,a);
scanf("%d",&daan);
if(daan==(b-a))
n++;
else
printf("Fault!\n");
m++;
break;
}
}
}
if(m == NUM+1)
break;
}
return n;
}

int main()
{
int M,p;
float right;
char o;
int num; //题目的个数。
while(1)
{
printf(" 欢迎进入小学生四则运算训练营\n\n1.10以内的四则运算\n0.退出\n\n");
printf("请选择功能号(1/0):");
scanf("%d",&p);
getchar();
if(p==1)
M=10;
if(p==0)
exit(0);
printf("请选择的是%d以内的四则运算个数:\n",M);
scanf("%d",&num);
int temp = yunsuan(M,num);
right= temp/(num*1.0);
printf("正确率:%.2f%%",right*100); //正确率。
getchar(); //吸收前面的回车键。
printf("继续吗?(y/n)");
scanf("%c",&o);
if(o == 'y' || o == 'Y')
{
system("pause");
}
else
{
break;
}
}
getchar();
return 0;
}

posted @ 2015-04-07 16:56  21林德麟  阅读(136)  评论(1编辑  收藏  举报